在达到列表中的某个元素后启动循环

时间:2014-02-06 13:01:48

标签: python python-2.7 if-statement for-loop break

如何在达到列表中的某个元素后开始在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

2 个答案:

答案 0 :(得分:4)

一种方法是迭代结合dropwhileislice的生成器:

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