<p>我是一个编程半新手,正在完成Torbjoern Lager的46个简单Python练习。这是第10个:定义一个函数overlapping(),它接受两个列表,如果它们至少有一个共同的成员,则返回True,否则返回False。您可以使用is_member()函数或in运算符,但为了练习起见,您应该(也)使用两个嵌套的for循环编写它。在</p>
<pre><code>def over(list1,list2):
for i in list1:
for j in list2:
return i==j
</code></pre>
<p>我以为我有一个很好的简单的解决方案,但是它不能识别出列表是重叠的,除非重叠的元素是第一个。在</p>
^{pr2}$
<p>返回False</p>
<pre><code>over(["a","b","c","d"],["a","f","g","h"])
</code></pre>
<p>返回True</p>
<p>出于某种原因,它没有搜索所有的组合。任何帮助都将不胜感激。在</p>
<p>问题是在第一次迭代时返回<code>i==j</code>。您的函数将只比较list1[0]和list2[0]。解决方案是添加<code>if</code>。
下面是一个例子:</p>
<pre><code>def over(list1,list2):
for i in list1:
for j in list2:
if i == j:
return True
return False
</code></pre>