有没有可能告诉For循环从特定位置开始?
>>> languages = ["C", "C++", "Perl", "Python"]
>>> for x in languages:
... print(x)
...
C
C++
Perl
Python
>>>
我该如何让脚本从"Perl"开始运行?我不需要它循环回来。
有没有可能告诉For循环从特定位置开始?
>>> languages = ["C", "C++", "Perl", "Python"]
>>> for x in languages:
... print(x)
...
C
C++
Perl
Python
>>>
使用myList[start:stop:skip]
可以通过索引对列表进行切片。从第三个索引(从零开始计数),不停止,也不跳过索引,如下所示:
for x in languages[2::]:
print x
我会为你提供:
Perl
Python
另请参阅:解释Python的切片表示法
languages[languages.index("Perl"):]
替换languages[2::]
;给出Perl的索引,所以不需要整数。 - Ari Golditertools.dropwhile
来实现这一点:>>> import itertools
>>> languages = ["C", "C++", "Perl", "Python"]
>>> for language in itertools.dropwhile(lambda x: x != 'Perl', languages):
... print(language)
...
Perl
Python
>>>
itertools.dropwhile
接受两个参数,一个函数用于确定列表元素是否等于您想要的起始值,以及可迭代的列表 - 在这种情况下是列表 - 您想要循环遍历。 dropwhile
将跳过元素,直到找到满足函数的元素,然后输出所有元素,直到可迭代对象耗尽。>>> 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++
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):
它从0开始输出直到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
languages = ["C", "C++", "Perl", "Python"]
print languages
通过列表切片非常容易
print languages[2:]
输出:
['Perl', 'Python']
a = []
a.extend(languages[2:])
a.extend(languages[:2])
print a
输出:
['Perl', 'Python', 'C', 'C++']