Python中的Lua的“通用For循环”?
2015-11-12 20:28:34
收藏:0
阅读:71
评论:3
所以,我一直在寻找类似于 Lua 的“通用 For 循环”在 Python 中的实现方式。
我一直在使用字典处理简单的基于文本的 Python 游戏。
下面是我想要实现的代码(在 Lua 中):
Dictionary = {
"Red" = "There is some red paint on the walls.",
"Green" = "There is a little bit of green paint on the floor.",
}
for i, v in pairs(Dictionary) do
print(i, v)
end
这将遍历字典,然后打印出索引和值。我该如何在 Python 中实现类似的功能呢?
我知道有这个:
for i in Dictionary: print(i)
但这只会打印索引。我想同时访问索引和值。像这样:
for i, v in Dictionary:
print(i, v)
非常感谢您的帮助。
点赞
用户364696
items 方法(在 Py2 中,使用 viewitems 或 iteritems 可以避免创建包含键/值对副本的新 list)是正确的方式:
for k, v in Dictionary.items(): # 为了性能,在 Py2.7 上使用 .viewitems(),在 Py3.x 上使用 .items()
print(k, v)
2015-11-12 20:30:35
用户5323213
两种方法:
for i, v in Dictionary.items():
print(i, v) #输出键值对
for tup in Dictionary.items(): #同样的操作
print(tup) # 输出键值对作为 (key,value) 的形式
或者
for key in Dictionary:
print(key,Dictionary[key])
回复评论:
>>> d = {1:1,2:2,3:3,4:4}
>>> for item in d.items(): print(item)
(1, 1)
(2, 2)
(3, 3)
(4, 4)
>>> for key,val in d.items(): print(key,val)
1 1
2 2
3 3
4 4
这是因为在第一个循环中,'item' 是一个元组,而元组的 __repr__ 使用括号和逗号,而第二个循环则将元组拆分为两个变量, print 然后自动在传递给 print 函数的参数之间添加一个空格分隔符。
正如 Two-Bit Alchemist 解释的那样:
但如果还不是很清楚,使用 tup 形式可以通过
tup [0]和tup [1]访问 key 和 value。for key,val in my_dict.items():......和for tup in my_dict.items(): key,val = tup是相同的设置。重点是,你可以在 for 循环中直接使用元组拆包。
2015-11-12 20:30:44
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
你正在寻找
items。遍历字典只会给你键,所以你必须这样做:for key in my_dict: x = my_dict[key]你想要的是这个:
for key, value in my_dict.items(): # do something