问题描述
我是一个新手,我想让自己了解枚举函数及其生成的枚举对象的行为。
引用枚举对象似乎耗尽了它的条目。尝试以相同的方式连续两次与之交互会产生不同的结果。
我一直认为它像一个列表,但这显然不是这种对象的行为方式。有人可以向我解释这种怪异的行为,还是将我引向一些会有用的资源?
MyList = ['one','two','three']
EnumList = enumerate(MyList,start=1)
print("Pass 1:")
print(EnumList)
for i in EnumList:
print(i)
print("\nPass 2:")
print(EnumList)
for i in EnumList:
print(i)
print("\nEnd")
输出:
Pass 1:
<enumerate object at 0x000001D79D0B4DB8>
(1,'one')
(2,'two')
(3,'three')
Pass 2:
<enumerate object at 0x000001D79D0B4DB8>
End
解决方法
enumarate
返回一个生成器,而不是list
。只需使用list(enumerate(data))
MyList = ['one','two','three']
EnumList = list(enumerate(MyList,start=1))
print("Pass 1:")
print(EnumList)
for i in EnumList:
print(i)
print("\nPass 2:")
print(EnumList)
for i in EnumList:
print(i)
print("\nEnd")