如何检查列表1中的任何元素是否不在列表2中python

oug3syen  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(410)

我有两份清单:

list1 = [1,2,3,4]
list2 = [1,2,3]

如何检查列表1中是否有任何元素不在列表2中?
我的当前代码由于某些原因无法工作:

if not any(item in list1 for item in list2):
    print(True)

我也尝试过相反的方法,但也不起作用:

if not any(item in list2 for item in list1):
    print(True)

所以理想情况下我应该 True 作为输出,因为列表1中的元素4在列表2中不存在,但我不存在。
我也想知道我的代码不正确的原因。提前谢谢。

bpsygsoo

bpsygsoo1#

你拿的是整张支票的底片。这将返回正确的结果

list1 = [1,2,3,4]
list2 = [1,2,3]
if any(item not in list2 for item in list1):
    print(True)

问题是

any(item in list2 for item in list1)

会回来的 True 如果有任何项目 list2list1 ,这是我们可以同意的。另一个选择是使用

all(item in list2 for item in list1)

哪个会回来 False 因为不是所有的 items 是的 list1list2 . 如果你用否定的话 not all 你会达到预期的结果。

相关问题