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

问题描述

在转换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)

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

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

不能要做的是多次遍历枚举对象本身:

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

因为枚举对象在第一次迭代中就用完了。

在这个特定问题中,将枚举对象传递给list等效于对其进行迭代并将每个项目添加到列表中,这样也将耗尽枚举对象。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...