[英]Python: Enumeration
人们曾经说过,枚举函数是python中的一个隐藏技巧。 我仍然不确定它的作用。 该文档只是告诉我它返回一个枚举对象。 那并不能完全帮助我理解这个概念。
枚举是做什么的?
枚举将每个元素的索引与元素配对:
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)
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
结果没有错误; 它们是任意排序的,因此不一定像“进入”一样“出来”。 与往常一样,遍历映射会产生其密钥。
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
迭代( 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])
因为代码清晰。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.