我想了解發電機和所遇到下面的代碼:發電機在Python查詢
def reverse(data):
for index in range(len(data)-1, -1, -1):
yield data[index]
for s in reverse([1,2,3]):
print s
我明白,我們在指數2
,減量在-1
開始通過1
和結束。我沒有得到的是,事實上,我認爲停止點-1
應該參考"3"
,但它似乎指的是"1"
在這裏? :
3
2
1
感謝
在假設之前檢查'range(len(data)-1,-1,-1)'的輸出關於停車點的任何事情(特別是因爲證據點違揹你的假設) – njzk2 2014-10-01 22:13:48
'range'實際上在上限之前停止。假設它的行爲方式是確保'我在範圍內(3)'將按照大多數人所期望的那樣迭代3次,'i'取值爲'[0,1,2]'。在你的情況下,'range(2,-1,-1)'輸出'[2,1,0]',這對應於你所看到的輸出的索引。 – 2014-10-01 22:16:05