我认为这是一个简单的问题,所以我直接举个例子。
鉴于这两个列表:
x = ['a', 'ab', 'abc', 'bc', 'c', 'ac']
y = ['a', 'b']
如何编写列表理解来过滤列表 x,结果如下:
result = ['c']
我想要一个列表理解,排除 y 中的字符串与 x 中的字符串的任何部分匹配。例如,y 中的“a”将匹配 x 中的“a”、“ab”、“abc”和“ac”。
此理解仅匹配整个字符串:result = [r for r in x if r not in y]
如果已经有人问过这个问题,我很乐意接受先前答案的链接。也就是说,我还没有在 SO 上找到一个。
Use all https://docs.python.org/3/library/functions.html#all:
result = [r for r in x if all(z not in r for z in y)]
Or any https://docs.python.org/3/library/functions.html#any:
result = [r for r in x if not any(z in r for z in y)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)