如何在达到列表中的某个元素后开始在for循环中执行代码。我有一些有用的东西,但有更多的pythonic或更快的方法吗?
list = ['a', 'b', 'c', 'd', 'e', 'f']
condition = 0
for i in list:
if i == 'c' or condition == 1:
condition = 1
print i
答案 0 :(得分:4)
一种方法是迭代结合dropwhile
和islice
的生成器:
from itertools import dropwhile, islice
data = ['a', 'b', 'c', 'd', 'e', 'f']
for after in islice(dropwhile(lambda L: L != 'c', data), 1, None):
print after
如果您想要包含,请删除islice
。
答案 1 :(得分:1)
一点简化代码:
lst = ['a', 'b', 'c', 'd', 'e', 'f']
start_index = lst.index('c')
for i in lst[start_index:]:
print i