我应该定义一个函数overlap(),它接受两个列表,如果它们至少有一个共同的成员,则返回True,否则返回False。为了练习,我应该使用两个嵌套的for循环来编写它。我做错了什么?
def overlapping(a,b):
for char in a:
for char2 in b:
return char in char2
有关如何使其发挥作用的任何建议吗?
答案 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)
返回在执行时立即结束该功能。由于这是一个功课,你应该自己找出工作方案。您可以考虑使用集合。