如何检查子列表中的所有项目是否都在列表中?python
我的问题与上面差不多: 如果您有以下两个列表,如何检查第一个列表中的所有项目是否都在第二个列表中。 乙二醇 我当前的尝试只是“如果所有列表都是列表二中的一”: 但这一条件似乎从未得到满足,因此没有进一步的进展。任何帮助都将不胜感激:)使用如何检查子列表中的所有项目是否都在列表中?python,python,list,Python,List,我的问题与上面差不多: 如果您有以下两个列表,如何检查第一个列表中的所有项目是否都在第二个列表中。 乙二醇 我当前的尝试只是“如果所有列表都是列表二中的一”: 但这一条件似乎从未得到满足,因此没有进一步的进展。任何帮助都将不胜感激:)使用all()函数检查是否满足所有条件。我们正在从列表_1获取元素,并检查列表_2中是否有可用的元素如果所有可用,则打印“是” 您可以检查列表中的单个项目 count=0 for i in list_one: if i in list_two:
all()
函数检查是否满足所有条件。我们正在从列表_1获取元素,并检查列表_2中是否有可用的元素如果所有可用,则打印“是”
您可以检查
列表中的单个项目
count=0
for i in list_one:
if i in list_two:
count += 1
if count==len(list_one):
print("All items covered!")
您可以将all
与生成器表达式一起使用,这将允许在找到第二个列表中未出现的第一个元素时短路
>>> list_one=[1,2,3]
>>> list_two=[1,2,3,4]
>>> all(i in list_two for i in list_one)
True
我只是创建了一个集的差异,然后检查长度
assert len(set([1,2,3]) - set([1,2,3,4])) == 0
请注意,在布尔上下文中,空集(与任何其他容器一样)是错误的,因此您可以简单地执行以下操作:
if set(seq1) - set(seq2):
do_something()
相关:在查找停止条件时,可以使用break
显式退出循环,或者使用谓词包含停止条件的while
循环。
>>> list_one=[1,2,3]
>>> list_two=[1,2,3,4]
>>> all(i in list_two for i in list_one)
True
assert len(set([1,2,3]) - set([1,2,3,4])) == 0
if set(seq1) - set(seq2):
do_something()