比较两个列表,python

时间:2010-10-24 20:15:05

标签: python nested for-loop

我应该定义一个函数overlap(),它接受两个列表,如果它们至少有一个共同的成员,则返回True,否则返回False。为了练习,我应该使用两个嵌套的for循环来编写它。我做错了什么?

def overlapping(a,b):
    for char in a:
        for char2 in b:
            return char in char2

有关如何使其发挥作用的任何建议吗?

3 个答案:

答案 0 :(得分:2)

您应该使用==而不是in运算符

def overlapping(list_a,list_b):
    for char_in_list_a in list_a:
        for char_in_list_b in list_b:
            if char_in_list_a == char_in_list_b:
                return True
    return False

如果你想要使用set:

def overlapping(a,b):
         return bool(set(a) & set(b))

答案 1 :(得分:2)

如果你真的需要使用2个循环:

def overlapping(a,b):
    for char1 in a:
        for char2 in b:
            if char1 == char2: return True
    return False

但是套装的解决方案要好得多。

答案 2 :(得分:0)

返回在执行时立即结束该功能。由于这是一个功课,你应该自己找出工作方案。您可以考虑使用集合。