我想知道如何判断一个列表是否包含另一个列表中的数字,但是我尝试过的方法都不能满足我的要求。例如,如果一个包含另一个列表的列表list2 = [[1,2,3],[4,5,6]]中的数字在列表list1 = [4, 5, 6, 7]中出现,那么应该输出True,因为list1中的数字是来自list2的整个列表。因此,由于list1包含数字4、5和6,所以输出应该为True。
以下是我的尝试:
for i in range(len(list2)):
if list1 in list2[i]:
print('True')
else:
print('False')
它输出了两次False(但我需要它输出True),我知道为什么。
[1, 2, 3] in [1, 2, 3, 4]
>>> False
有没有什么方法可以避免这种情况?还是我应该只使用字符串,因为它们可以很好地处理这种情况?
print('True' if any(s1.intersection(sublist) for s1 in [set(list1)] for sublist in list2) else 'False')
。.intersection()
用于查找重叠部分。如果需要包含所有元素,则改为.issuperset()
。 - Steven Rumbalski