陣列循環我發現Python沒有空調風格的for循環:蟒蛇與病情
for (var;condition:increment)
對於一個簡單的for循環,我可以用
for i in xrange(number):
生產
for (i;i<number;i++)
但是,如果我有
for (i = 2; an_array[i - 2] < number; i++)
我該如何在python中生成它?
感謝
陣列循環我發現Python沒有空調風格的for循環:蟒蛇與病情
for (var;condition:increment)
對於一個簡單的for循環,我可以用
for i in xrange(number):
生產
for (i;i<number;i++)
但是,如果我有
for (i = 2; an_array[i - 2] < number; i++)
我該如何在python中生成它?
感謝
你可以
逐一查看該數組,並使用整齊的功能之一itertools
,如takewhile()
:數組:
for item in takewhile(lambda i: i < number, array[2:]):
# do stuff
這從給定的迭代(這裏取值)直到(或同時)其內容符合一定條件。
這裏,item
是相應陣列條目的內容。 2
for index, item in enumerate(takewhile(lambda i: i < number, array[2:])):
# do stuff
但這指數是關閉的,因爲它計數通過的項目;如果你確實需要的索引,你可以用enumerate()
結合起來當您從array[2:]
開始時,您必須添加2
才能訪問陣列的右側部分。
使用while循環:
i = 2
while (array[i-2] < number):
# do stuff
i += 1
您可以使用以下方法:
for i in xrange(2, number):
# Whatever
當x範圍有兩個參數,它創建從第一個值到最後值的範圍。請注意,第一個值包含在最後一個值中。
編輯:如果你正在處理數組,Tim Pietzcker的方法就是要走的路。我只是提供了這個方法來提供一個方便的對象。
怎麼樣'an_array [我 - 2]
'enumerate'在Python 2.6中獲得了一個起始索引值('start = 0'),這使得第二個版本更好一些:'for index,item in enumerate(takewhile(lambda i:i
torek