比较两个列表,python
我需要定义一个叫做 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
不过,使用集合的解决方案要好得多。