比较两个列表,python

0 投票
3 回答
1972 浏览
提问于 2025-04-16 06:01

我需要定义一个叫做 overlapping() 的函数,这个函数要接收两个列表,如果这两个列表里至少有一个相同的元素,就返回 True;如果没有相同的元素,就返回 False。为了练习,我需要用两个嵌套的 for 循环来写这个函数。我哪里做错了呢?

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

有没有什么建议可以让我把它写对呢?

3 个回答

0

当你执行return的时候,函数会立刻结束。因为这是一个作业,你应该自己想出一个可行的解决方案。你可以考虑使用一个集合(set)。

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

如果你想用集合的话:

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

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

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

不过,使用集合的解决方案要好得多。

撰写回答