枚举对象上的python dict函数

时间:2010-04-26 13:21:39

标签: python dictionary enumerate

如果我有一个枚举对象x,为什么要执行以下操作:

dict(x)

清除枚举序列中的所有项目?

1 个答案:

答案 0 :(得分:18)

enumerate创建iterator。迭代器是一个python对象,它只知道序列的当前项以及如何获取下一个,但没有办法重新启动它。因此,一旦在循环中使用了迭代器,它就不能再为你提供任何项目并且看起来是空的。

如果要从迭代器创建实际序列,可以在其上调用list

stuff = range(5,0,-1)
it = enumerate(stuff)
print dict(it), dict(it) # first consumes all items, so there are none left for the 2nd call

seq = list(enumerate(stuff)) # creates a list of all the items
print dict(seq), dict(seq) # you can use it as often as you want