【问题标题】:Start loop after certain element in list is reached到达列表中的某个元素后开始循环
【发布时间】:2014-03-03 10:46:44
【问题描述】:

在到达列表中的某个元素后,如何在 for 循环中开始执行代码。我有一些可行的方法,但是有没有更 Python 或更快的方法来做到这一点?

list = ['a', 'b', 'c', 'd', 'e', 'f'] 
condition = 0

for i in list:
    if i == 'c' or condition == 1:
        condition = 1
        print i

【问题讨论】:

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


    【解决方案1】:

    一点简化的代码:

    lst = ['a', 'b', 'c', 'd', 'e', 'f'] 
    
    start_index = lst.index('c')
    for i in lst[start_index:]:
        print i
    

    【讨论】:

    • 一些值得注意的点:1)如果元素不存在,你会得到一个IndexError,2)这会创建一个迭代的新列表......,3)它更少通用,因为它只适用于支持索引和切片的项目......否则 - 它适用于 OP,所以一切都很好。
    【解决方案2】:

    一种方法是迭代结合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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      相关资源
      最近更新 更多