【发布时间】:2020-01-27 21:48:05
【问题描述】:
我需要一个通用 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 等效项一样(除了针对 0 索引和 1 索引进行了更正)。
这样的 API 存在吗?
【问题讨论】:
-
你需要
{"foo": "bar"}.items() -
@Jean-FrançoisFabre 不适用于列表或元组。
-
没有一个函数的行为方式与您描述的方式相同。使用
items方法进行映射,enumerate用于类似列表的可迭代对象。 -
@SoniEx2:你为什么需要一个“通用 API”?在不知道类型是字典还是列表的情况下,您在做什么? Python 不是 Lua,您不应该像 Lua 代码那样编写 Python 代码。学习一门新的编程语言最重要的部分之一是学习它的惯用语,即用该语言编写代码的方式。只有在万不得已的情况下才应该从另一种语言导入习语。这不是“需要”;这是个人喜好。
-
@NicolBolas 配置文件。实际上,Lua 的语义是正确的。
标签: python python-3.x lua iteration