繁体   English   中英

转换为列表后枚举对象为空

[英]Enumerate object is empty after converting to a list

转换enumerate对象时变为空:

myTuple = (1, 2, 3)

myEnum = enumerate(myTuple)

print(myEnum)
print(list(myEnum))

print(myEnum)
print(list(myEnum))

enumerate返回一个可以迭代一次的对象。 那就用完了。

如果要多次枚举一个序列,可以多次调用enumerate

for i,x in enumerate(my_items):
    print(i,x)
for i,x in enumerate(my_items):
    print(i,x)

或者您将枚举对象转换为列表,然后多次迭代:

enumerated_items = list(enumerate(my_items))
for i,x in enumerated_items:
    print(i,x)
for i,x in enumerated_items:
    print(i,x)

不能做的是多次迭代枚举对象本身:

e = enumerate(my_items):
for i,x in e:
    print(i,x)
for i,x in e:
    print(i,x) # won't happen

因为 enumerate 对象被第一次迭代用完。

在这个特定的问题中,将枚举对象传递给list等效于遍历它并将每个项目添加到列表中,这样也会用完枚举对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM