Jaj*_*aja 4 python list python-3.x
我有两个没有固定数量的项目列表,例如:
data=['sun','stars','moon','supermoon','planet','comet','galaxy']
forbidden=['mo','st','lax']
Run Code Online (Sandbox Code Playgroud)
我只需要打印那些data
不包含任何字符串的项目forbidden
.在这种情况下,输出将是
sun
planet
comet
Run Code Online (Sandbox Code Playgroud)
我尝试的是
print [x for x in data if forbidden not in x ]
Run Code Online (Sandbox Code Playgroud)
仅适用于一个条件(forbidden
列表中的一个项目)
有没有办法一次检查所有条件?
如果我知道forbidden
我可以使用的物品数量
print [x for x in data if forbidden[0] not in x and forbidden[1] not in x]
Run Code Online (Sandbox Code Playgroud)
但它不适用于未知数量的项目.
谢谢你的帮助.
你可以使用all
:
data=['sun','stars','moon','supermoon','planet','comet','galaxy']
forbidden=['mo','st','lax']
print([i for i in data if all(c not in i for c in forbidden)])
Run Code Online (Sandbox Code Playgroud)
输出:
['sun', 'planet', 'comet']
Run Code Online (Sandbox Code Playgroud)