python的枚举enumerate()输出某个列表元素的索引值,但是如果将枚举转换成列表后,则不能正常输出。。

使用python的枚举enumerate()输出某个列表元素的索引值,但是如果将枚举转换成列表后,则不能正常输出。。
以下可以正常输出索引:

list1 = [2, 5, 7, 9, 11, 17, 222]
en1 = enumerate(list1)
# list2 = list(en1)
print(en1)
for i, j in en1:
    if j == 17:
        print(i)
print(en1)

<enumerate object at 0x000002CC7752E948>
5
<enumerate object at 0x000002CC7752E948>

进程已结束,退出代码0

但是取消注释后,则不能输出索引值:

list1 = [2, 5, 7, 9, 11, 17, 222]
en1 = enumerate(list1)
list2 = list(en1)
print(en1)
for i, j in en1:
    if j == 17:
        print(i)
print(en1)

<enumerate object at 0x0000023430A0E948>
<enumerate object at 0x0000023430A0E948>

进程已结束,退出代码0

因为list(en1) 这一步已经把这个迭代器里面的元素取完了

遍历列表元素

list1 = [2, 5, 7, 9, 11, 17, 222]
en1 = enumerate(list1)
list2 = list(en1)
for x in list2:
    if x[1]== 17:
        print(x[0])