如何有效地查找一个列表是否存在于另一个列表中 python

How to efficiently find if a list exist inside of another list python

我想确定是否可以在 python 中的另一个字符串列表中找到一个字符串列表。

例如:

list1 = ['iguana','cat','spider','monkey','dog']
list2 = ['cat','dog']

result = False

for i in list1:
    for j in list2:
        if list1[i] == list2[j]
            result = True

print(result)

结果是正确的,但这似乎会导致更大的列表出现问题

有没有什么方法可以用更简洁的代码更有效地搜索第一个列表?

您的问题专门针对列表。我假设您正在尝试确定 list2 中的所有元素是否都在 list1 中。如果是这样,那么我们正在谈论集合,那么这将是一个解决方案:

set1 = {"iguana", "cat", "spider", "monkey", "dog"}
set2 = {"cat", "dog"}
print(set2.issubset(set1))

您可以使用列表推导来试一试

list1 = ['iguana','cat','spider','monkey','dog']
list2 = ['cat','dog']

if [animal for animal in list2 if animal in list1] == list2:
    print(True)
else:
    print(False)

或者您可以使用 .issubset。但似乎其他人已经建议了。

有一个叫做集合的结构。它具有非常有效的功能来检查元素是否存在于集合中。它还具有检查另一个集合是否是它的子集的功能。 例如,您有两个列表。

list1 = ['iguana','cat','spider','monkey','dog']
list2 = ['cat','dog']

您可以从中创建两个集合,然后像这样检查 list2 的所有元素是否都出现在 list1 中(如果这是您想要的)。

set1 = set(list1)
set2 = set(list2)
answer = set2.issubset(set1)