Python 中类似 Lua pairs() 的功能
2019-9-27 14:40:5
收藏:0
阅读:91
评论:2
我需要一种通用的 API 来将 Python 对象作为键/索引和值对进行迭代。现在可以这样做:
for k,v in pairs({"foo": "bar"}):
print(k, v)
输出结果为 "foo bar",并且
for i,v in pairs(["foo", "bar"]):
print(i, v)
输出结果为 "0 foo" 和 "1 bar",就像 Lua 中的 pairs() 一样(只是纠正了 0 索引与 1 索引不同的问题)。
有这样的 API 吗?
点赞
用户6451573
你可以通过测试输入类型并使用字典的 items,以及对于列表、元组使用 enumerate,或默认使用 enumerate 来模仿 "pairs" 函数,后者可以处理任何可迭代的对象:
def pairs(o):
if isinstance(o,dict):
return o.items()
else:
return enumerate(o)
for k,v in pairs({"foo": "bar"}):
print(k, v)
for i,v in pairs(["foo", "bar"]):
print(i, v)
输出:
foo bar
0 foo
1 bar
另外:更改为 return enumerate(o,1),以使索引从 1 开始。
2019-09-27 14:45:57
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的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 代码?

对于
dict,使用items方法:for k, v in {"foo": "bar"}.items(): print(k, v)对于列表没有对应的方法。不过,你可能想查看
itertools文档中的grouper部分的配方。要将字典转换为可与
grouper配合使用的迭代器,请使用itertools.chain.from_iterable({"a": 1, "b": 2}.items())。