[英]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.