作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的第一篇文章和问题在这里...
所以,让 list_a
是列表列表:
list_a = [[2,7,8], [3,4,2], [5,10], [4], [2,3,5]...]
让
list_b
是另一个整数列表:
list_b = [5,7]
我需要排除
list_a
中的所有列表,其项目至少包含来自
list_b
的一项.上面例子的结果应该是
list_c = [[3,4,2], [4]...]
如
list_b
不是一个列表而是一个数字
b
,那么可以在一行中将 list_c 定义为:
list_c = [x for x in list_a if not b in x]
我想知道,是否可以为列表
list_b
写一个优雅的单行代码其中有几个值。当然,我可以循环遍历所有
list_b
的值,但可能存在更快的选择?
最佳答案
您可以编写 A 中所有子列表的逻辑,其中 B 的任何元素都不在子列表中,具有如下列表理解:
A = [[2,7,8], [3,4,2], [5,10], [4], [2,3,5]]
B = [5,7]
[l for l in A if not any(n in l for n in B)]
# [[3, 4, 2], [4]]
条件
any(n in l for n in B)
如果有任何元素,则为真,
n
, 的
B
在子列表中,
l
,来自
A
.使用
not
我们可以采取相反的做法。
关于python - 如何在对其项目施加一些限制的同时快速消除列表中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67050976/
我是一名优秀的程序员,十分优秀!