列表理解打破内循环

时间:2018-04-27 04:33:08

标签: python python-3.x python-2.7 list list-comprehension

keyword = ['air','water' ,'fire','earth']
actual = ['air','water earth']
new = []

for a in actual:
    for k in keyword:
        if k in a:
           new.append(a)
           break

print("\n".join(new))
#air
#water earth

如果没有break,则会打印

#air
#water earth
#water earth

如何将其转换为列表理解并使用关键字break

我的代码是

[new.append(a) for a in actual for k in keyword if k in a]

请帮助我。

1 个答案:

答案 0 :(得分:3)

您可以改变您对自己病情的看法,例如:

In []:
new = [a for a in actual if any(k in a for k in keyword)]
print(new)

Out[]:
['air', 'water earth']

这种形式很长:

new = []
for a in actual:
    if any(k in a for k in keywords):
        new.append(a)

在功能上等同于带有中断的内部循环,因为any()会短路。

相关问题