Python:枚举

时间:2015-02-22 20:16:02

标签: python enumerate

人们已经说过枚举函数是python中隐藏的技巧。我仍然不确定它的作用。文档只是告诉我它返回一个枚举对象。这并不能完全帮助我理解这个概念。

枚举有什么作用?

4 个答案:

答案 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')]

请注意,setdict结果错误;它们是任意订购的,因此不一定&#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])

因为代码清晰。