擅长:python、mysql、java
<p>您当前看到的错误是元组解包错误,如果<strong>tab1</strong>和<strong>tab2</strong>中没有公共元素,则当您将所有函数设置为:</p>
<pre><code>x, y = collision2([1, 2, 3], [4, 5, 6])
</code></pre>
<p><strong>y</strong>未被赋值,导致引发异常</p>
<p>因此,您可以实现如下功能:</p>
<pre><code>def collision2(tab1, tab2):
for idx1, val1 in enumerate(tab1):
for idx2, val2 in enumerate(tab2):
if val1 == val2:
return idx1, idx2
return -1, -1
</code></pre>
<p>有两点需要注意:</p>
<ol>
<li>返回-1,-1可防止元组解包错误</li>
<li>使用<code>enumerate(iterable)</code>返回iterable的索引和该索引处的值。这种做法被认为是肾盂。你知道吗</li>
</ol>
<p>希望这有帮助。你知道吗</p>