枚举()是什么意思?

新手上路,请多包涵

for row_number, row in enumerate(cursor): 在 Python 中做什么?

enumerate 在这种情况下是什么意思?

原文由 user3374098 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 295
1 个回答

enumerate() 函数 向可迭代对象添加一个计数器。

因此,对于 cursor 中的每个元素,都会生成一个元组 (counter, element)for 循环将其分别绑定到 row_numberrow

演示:

 >>> elements = ('foo', 'bar', 'baz')
>>> for elem in elements:
...     print elem
...
foo
bar
baz
>>> for count, elem in enumerate(elements):
...     print count, elem
...
0 foo
1 bar
2 baz

默认情况下, enumerate() 0 计数,但如果你给它第二个整数参数,它将从那个数字开始:

 >>> for count, elem in enumerate(elements, 42):
...     print count, elem
...
42 foo
43 bar
44 baz

如果您要在 Python 中重新实现 enumerate() ,这里有两种实现方法;一个使用 itertools.count() 进行计数,另一个在 生成器函数 中手动计数:

 from itertools import count

def enumerate(it, start=0):
    # return an iterator that adds a counter to each element of it
    return zip(count(start), it)

def enumerate(it, start=0):
    count = start
    for elem in it:
        yield (count, elem)
        count += 1

C 中的实际实现 更接近后者,优化为常见的重用单个元组对象 for i, ... 解包情况并使用标准 C 整数值作为计数器,直到计数器变得太大而无法避免使用一个 Python 整数对象(无界)。

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题