Python有enumerate()
在與index.I對象進行迭代懷疑口譯跟蹤的東西在哪裏的唯一目的是創造了很多INT對象。該PEP page說以下,但我真的不明白什麼是引擎蓋下回事:什麼是實現細節的枚舉?
它提供與iteritems()得到字典,以同樣的優勢,所有iterables - 一個緊湊的,可讀的,可靠的指標符號。
那麼,什麼是魔術嗎?
Python有enumerate()
在與index.I對象進行迭代懷疑口譯跟蹤的東西在哪裏的唯一目的是創造了很多INT對象。該PEP page說以下,但我真的不明白什麼是引擎蓋下回事:什麼是實現細節的枚舉?
它提供與iteritems()得到字典,以同樣的優勢,所有iterables - 一個緊湊的,可讀的,可靠的指標符號。
那麼,什麼是魔術嗎?
enumerate()
是一個迭代;它僅產生上飛索引int
值;它不會在前面產生它們。
你可以嘗試讀取enumobject.c
source code,但它基本上可以被翻譯到Python這樣的:
def enumerate(iterable, start=0):
count = start
for elem in iterable:
yield count, elem
count += 1
的yield
關鍵字使這一generator function,你需要循環發電機(或致電next()
在其上),進入到產生數據,每次一個呼叫yield
功能。
的Python也實習生int
值,-5和256(含)是單身,所以上面的代碼,直到你達到257甚至不產生新的int
對象之間的所有值
編程語言的源代碼對我來說仍然有點令人望而生畏。任何一個刷過「產量」的人都會馬上得到這個結果。非常感謝Martijn! – Forethinker
它可以幫助你瞭解那裏的東西....
l = ['apple', 'banana', 'cabbage']
for idx, item in enumerate(l):
print "the item: %s, is at position %s" % (item, idx)
>>>
the item: apple, is at position 0
the item: banana, is at position 1
the item: cabbage, is at position 2
這有助於在以下情況下..假設你想找到列表中的每個「白菜」的項目。並瞭解他們的指標。
l = ['apple', 'banana', 'cabbage', 'monkey', 'kangaroo', 'cabbage']
def find_indexes(lst, match):
results = []
for idx, item in enumerate(l):
if item == match:
results.append(idx)
return results
print find_indexes(l, 'cabbage')
>>>
[2, 5]
Python中創造了很多'的int '對象*無處不在*,但會實現小值(-5到256範圍內的某個值)。 –
@jamylak我是新來Ptyhon所以我有麻煩通過google搜索找到剛纔的源代碼。哪一個文件包含'enumerate'的源代碼? – Forethinker
@Forethinker:http://hg.python.org/cpython/file/2.7/Objects/enumobject.c –