擅长:python、mysql、java
<p>我猜想,问题在于如何返回和解释函数的结果。如果存在匹配项,则函数返回一个元组,如果不匹配,则返回<code>-1</code>。您可能<em>解包函数的结果</em>,如果不匹配,则会出现以下错误:</p>
<pre><code>>>> def collision2(tab1,tab2):
... for i in range(len(tab1)):
... for j in range(len(tab2)):
... if (tab1[i]==tab2[j]):
... return i,j
... return -1
...
>>> x, y = collision2([1, 2, 3], [3, 4, 5]) # there is a match, no error
>>> x, y = collision2([1, 2, 3], [10, 10, 10]) # now, there is no match
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
</code></pre>
<hr/>
<p>修复它的一种方法是返回<code>-1, -1</code>元组,而不是只返回<code>-1</code>:</p>
<pre><code>def collision2(tab1,tab2):
for i in range(len(tab1)):
for j in range(len(tab2)):
if (tab1[i] == tab2[j]):
return i,j
return -1, -1
</code></pre>