簡體   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