我在python中有一个列表列表,看起来像这样:
my_list = [[True, 0, 4], [True, 3, 6, 7], [1, 3, 5]]
我想删除都列出真在其中
我尝试过
my_list = [x for x in my_list if True not in x]
但是我得到的只是一个空列表,当显然结果应该是 [1, 3, 5]
当我尝试像l = [[True, 0, 4], [3, 6, 7], [1, 3, 5]]
我得到的列表时[[3, 6, 7]]
,我不明白为什么。
True似乎有问题,因为当我尝试使用整数时,它会相应地删除列表
如@LydiavanDyke所述True == 1
,因此您将需要使用更强大的is
运算符,这意味着您无法使用简单in
运算符(使用==
)。
my_list = [[True, 0, 4], [True, 3, 6, 7], [1, 3, 5]]
without_true = [
sublist for sublist in my_list
if not any(item is True for item in sublist)
]
然后会给你
>>> without_true
[[1, 3, 5]]
请注意,它A in B
在功能上等效于(但通常比以下速度更快)
any(item == A for item in B)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句