是否可以告訴For循環從特定位置開始?從For循環中的特定點開始
>>> languages = ["C", "C++", "Perl", "Python"]
>>> for x in languages:
... print(x)
...
C
C++
Perl
Python
>>>
我怎樣才能讓腳本從「Perl」開始?我不需要它迴環繞。
是否可以告訴For循環從特定位置開始?從For循環中的特定點開始
>>> languages = ["C", "C++", "Perl", "Python"]
>>> for x in languages:
... print(x)
...
C
C++
Perl
Python
>>>
我怎樣才能讓腳本從「Perl」開始?我不需要它迴環繞。
列表可以使用myList[start:stop:skip]
的索引進行切片。從第三指數(零索引),沒有停止,也沒有索引跳躍開始,將是:
for x in languages[2::]:
print x
會給你:
Perl
Python
什麼是x語言[languages.index(「Perl」)::]? –
@AriGold我不知道那是什麼..它爲我產生語法錯誤 – davedwards
真的,沒辦法,用語言[languages.index(「Perl」):]替換語言[2 ::],給索引的Perl,所以不需要INT –
你可以使用itertools.dropwhile
此:
>>> import itertools
>>> languages = ["C", "C++", "Perl", "Python"]
>>> for language in itertools.dropwhile(lambda x: x != 'Perl', languages):
... print(language)
...
Perl
Python
>>>
itertools.dropwhile
起飛s兩個參數,一個函數,用於確定列表元素是否等於您想要的起始值,以及迭代器(您的案例中的列表)是否要循環。 dropwhile
將跳過元素,直到找到滿足該函數的元素,然後它將輸出所有元素,直到迭代器耗盡。
如果您選擇起點的標準比簡單平等更復雜,這很有用。例如,如果你想從以「P」開頭的第一個元素開始,你可以這樣做:
>>> for language in itertools.dropwhile(lambda x: not x.startswith('P'), languages):
... print(language)
...
Perl
Python
>>>
的這種反向是itertools.takewhile
,這將重複,只要所提供的功能是滿足。
languages = ["C", "C++", "Perl", "Python"]
# add start index range by the index of "Perl"
for x in languages[languages.index("Perl"):]:
print(x)
# Perl
# Python
for x in languages[languages.index("C++"):]:
print(x)
# C+=
# Perl
# Python
試試這個。我希望這將幫助ü
languages = ["C", "C++", "Perl", "Python"]
for k in range(0,len(languages)):
print(languages[k-2])
,輸出是:
Perl
Python
C
C++
在Python for循環功能(在X K(啓動,停止,步驟))。 x是列表或字符串變量和
start : Indicates where the for loop should start and the index starts from zero.
stop : Indicates where the for loop ends. It takes up to (n-1) elements.
例如:
for k in range(0,100):
它給直到99輸出零,如果u想100的U輸出應該提到這樣的:
n = 100
for k in range(n+1):
print k
輸出是從0到100.在這種情況下for循環將從零開始索引(開始)。
step : Indicates how many steps should do in for loop. By default step is one in for loop.
例如:
for k in range(0,10,1):
print k
#output is 0,1,2,3,4,5,6,7,8,9
for k in range(0,10,2):
print k
#output is 0,2,4,6,8
for k in range(0,10,3):
print k
#output is 0,3,6,9
如果你想從Perl的開始到列表
languages = ["C", "C++", "Perl", "Python"]
print languages
它通過列表很容易結束元素切片
print languages[2:]
輸出:
['Perl', 'Python']
你可以循環這個列表並獲取單獨的行上的元素。
,即使你想從Perl的環回元素備份到perl的,然後你也可以使用列表切片
a = []
a.extend(languages[2:])
a.extend(languages[:2])
print a
輸出:
['Perl', 'Python', 'C', 'C++']
你可以試試:
languages = ["C", "C++", "Perl", "Python"]
for i in range(languages.index("Perl"),len(languages)):
# 1st parameter of range will find Perl's index from list languages
#2nd parameter - Length of list
print languages[i]
Perl
Python
通過切片清單並迭代通過該 – Li357
[另請參閱](http://stackoverflow.com/questions/176918/find這是一個包含Python-in-the-index-of-a-item-given-a-list) – user25064
[遍歷列表的一部分的pythonic方法]的可能副本(http://stackoverflow.com/問題/ 8671280/pythonic-way-to-iterate-over-part-of-a-list) – SiHa