擅长:python、mysql、java
<p>回答标题中的问题:在将其用作字典键之前,请尝试以下操作:</p>
<pre><code>match = frozenset(match)
</code></pre>
<p>报告的错误意味着<code>match</code>是可修改的<code>set</code>,因此它不能用作字典键。通过使用<code>frozenset</code>我们使其不可变,因此我们可以将其用作密钥</p>
<p>但要注意,这不是真正的问题<code>match</code>看起来不包含您期望的值,该值可以用作<code>allRecNames</code>的键。我做了一个简单的例子,它看起来像这样:</p>
<pre><code>match
=> set([(1, 2, 3)])
</code></pre>
<p>但是<code>allRecNames</code>中的键如下所示:</p>
<pre><code>allRecNames.keys()
[(0, 1, 2), (0, 2, 3), (1, 2, 3), (0, 1, 3)]
</code></pre>
<p>你发现问题了吗?您的<code>match</code>变量包含一组元组列表,但是<code>allRecNames</code>的键只是一个元组。你的代码被设计破坏了——也许你真正真正的意思是:</p>
<pre><code>if iP in allRec:
allRecNames[iP]
</code></pre>