人们已经说过枚举函数是python中隐藏的技巧。我仍然不确定它的作用。文档只是告诉我它返回一个枚举对象。这并不能完全帮助我理解这个概念。
枚举有什么作用?
答案 0 :(得分:1)
枚举每个元素的索引与元素:
for i in enumerate(['a', 'b', 'c']):
print I
(0, 'a')
(1, 'b')
(2, 'c')
此外,您可以自己创建自己的枚举:
enum = lambda l: zip([i for i in range(len(l))], l)
答案 1 :(得分:0)
enumerate()
可以与任何可迭代使用。它枚举了iterable返回的值。
3>> enumerate(['a', 'b', 'c'])
<enumerate object at 0x7f1340c44a50>
3>> list(enumerate(['a', 'b', 'c']))
[(0, 'a'), (1, 'b'), (2, 'c')]
3>> list(enumerate({'a', 'b', 'c'}))
[(0, 'c'), (1, 'b'), (2, 'a')]
3>> list(enumerate({'a':0, 'b':0, 'c':0}))
[(0, 'c'), (1, 'b'), (2, 'a')]
请注意,set
和dict
结果不错误;它们是任意订购的,因此不一定&#34;出来&#34;他们以同样的方式进入&#34;。和往常一样,遍历映射会产生密钥。
答案 2 :(得分:0)
enumerate()
是一个花哨的工具,它为您提供可迭代项目和项目的索引。没有什么是你无法做的循环标准。
假设我们有这个简单的列表。 lst = ['red', 'car', 'machine', 'go', 'cloud', 'cabbages']
enumerate()
for index, item in enumerate(lst):
print(str(item) + " Is item number: " + str(index))
没有enumerate()
这可能看起来像。
for count in range(len(lst)):
print(str(lst[count]) + " Is item number: " + str(count))
两者都产生相同的输出。
>>> red Is item number: 0
>>> car Is item number: 1
>>> machine Is item number: 2
>>> go Is item number: 3
>>> cloud Is item number: 4
>>> cabbages Is item number: 5
答案 3 :(得分:0)
当迭代(for
)枚举对象时,它返回通常会返回的位置和事物:
a = ["a", "b", "c"]
for pos, x in enumerate(a):
print(pos, x)
应使用上面的示例代替:
a = ["a", "b", "c"]
for x in range(len(a)):
print(x, a[x])
因为代码清晰。