首页 > 解决方案 > 奇数开始时如何停止循环?

问题描述

我怎样才能从中得到[11, 12, 15][4, 8, 10, 11, 12, 15] 这段代码中,当列表中的奇数元素开始时循环应该停止并打印列表的其余部分。我写了它,但没有得到实际值:

data = [4, 8, 10, 11, 12, 15]
emp = []
for i in data:
    if i%2 ==0:
        emp.append(i)
        while i%2 !=0:
            break
    
print([x for x in data if x not in emp])

标签: pythonpython-3.x

解决方案


我建议使用itertools.dropwhile

r = list(itertools.dropwhile(lambda x: x % 2 == 0, data))

结果是: [11, 12, 15]

只要 lambda 返回,它就会从您的列表中删除True

有关更多信息,请参阅itertools.dropwhile 文档


推荐阅读