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]
请帮助我。
答案 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()
会短路。