我有两个列表
ListA = [1,9,6,3,2,4]
ListB = range(min(ListA),(max(ListA)+1))
i.e ListB = [1,2,3,4,5,6,7,8,9]
我想检查ListB中是否存在ListA的所有元素
答案 0 :(得分:4)
使用issubset
来实现这一目标(我更喜欢重命名变量以使其变得更加pythonic):
l1 = [1, 9, 6, 3, 2, 4]
l2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
<强>输出:强>
>>> set(l1).issubset(set(l2))
True
您也可以使用issuperset
,如下所示:
>>> set(l2).issuperset(set(l1))
True
答案 1 :(得分:3)
您可以使用set()
检查ListA
是ListB
的子集:
>>> ListA = [1, 9, 6, 3, 2, 4]
>>> ListB = [1,2,3,4,5,6,7,8,9]
>>> set(ListA) <= set(ListB) # OR, using `set(ListA).issubset(set(ListB))`
True
或者,您可以使用all()
来迭代检查:
# Iterates over ListA and checks each item is in ListB
>>> all(item in ListB for item in ListA)
True
答案 2 :(得分:3)
您可以使用子集执行此操作。
set(ListA).issubset(set(ListB))