[英]Starting from a specific point in a For loop
是否可以告訴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
另請參閱: 解釋Python的切片表示法
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
您可以使用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
接受兩個參數,一個確定列表元素是否等於所需起始值的函數,以及你想循環遍歷的iterable(在你的情況下是一個列表)。 dropwhile
將跳過元素,直到找到滿足該函數的元素,然后它將輸出所有元素,直到iterable耗盡為止。
如果選擇起點的標准比簡單相等更復雜,則此選項非常有用。 例如,如果您想從以“P”開頭的第一個元素開始,您可以執行以下操作:
>>> for language in itertools.dropwhile(lambda x: not x.startswith('P'), languages):
... print(language)
...
Perl
Python
>>>
與此相反的是itertools.takewhile
,只要滿足所提供的函數,它就會迭代。
嘗試這個。 我希望這會對你有所幫助
languages = ["C", "C++", "Perl", "Python"]
for k in range(0,len(languages)):
print(languages[k-2])
輸出是:
Perl
Python
C
C++
在python中,for循環函數是(對於k in x(start,stop,step))。 這里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,如果你想輸出100.你應該這樣提到:
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
你可以試試 :
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
如果你想要從perl開始到列表末尾的元素
languages = ["C", "C++", "Perl", "Python"]
print languages
通過列表切片非常容易
print languages[2:]
輸出:
['Perl', 'Python']
你可以循環這個列表並在單獨的行上獲取元素。
即使你想要從perl到back-to-perl的環回元素,你也可以使用列表切片
a = []
a.extend(languages[2:])
a.extend(languages[:2])
print a
輸出:
['Perl', 'Python', 'C', 'C++']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.