问题描述
在转换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
等效于对其进行迭代并将每个项目添加到列表中,这样也将耗尽枚举对象。