无法使用“in”函数检查一个数组是否包含在另一个数组中

2024-10-05 12:13:10 发布

您现在位置:Python中文网/ 问答频道 /正文

当前代码非常短。如果我正确理解了“in”函数,那么如果[1,3]都在[1,4,5]中,for循环不应该只迭代并返回True吗?现在我所有的测试都是真的。我觉得有一个简单的解决办法,我只是不知道。你知道吗

我尝试在for和return行之间放置if语句,但仍然只返回true。你知道吗

def innerOuter(arr1, arr2):
    for arr1 in arr2: 
        return True 
    return False

Tags: 函数代码intrueforreturnifdef
2条回答

当前代码将为arr2中的每个元素返回True,您要查找的是if arr1 in arr2:

你必须使用if one_element in array

def innerOuter(arr1, arr2):
    for x in arr1:
        if x not in arr2:
            return False
    return True

innerOuter([1,3], [1,4,5]) # False
innerOuter([1,4], [1,4,5]) # True

或者您可以使用set()来检查它

def innerOuter(arr1, arr2):
    return set(arr1).issubset(set(arr2))

innerOuter([1,3], [1,4,5]) # False
innerOuter([1,4], [1,4,5]) # True

同样的:

def innerOuter(arr1, arr2):
    return set(arr1) <= set(arr2)

https://docs.python.org/2/library/sets.html#set-objects

相关问题 更多 >

    热门问题