回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在编写一个国际象棋程序和代码检查。我需要从对手移动字典(其中包含国王的位置)的关键是用来找到一块放在检查它的坐标。现在这是给我的错误:</p>
<pre><code>opponentpieceposition=opponentposition.get(piece)
TypeError: unhashable type: 'list'.
</code></pre>
<p>注意下面的例子应该打印(1,6)</p>
<pre class="lang-py prettyprint-override"><code>king=(5,1)
opponentmoves={'ksknight': [(8, 3), (5, 2), (6, 3)],
'ksbishop': [(3, 6), (4, 7), (5, 8), (1, 4), (1, 6), (3, 4), (4, 3), (5, 1), (6, 1)],
'king': [(6, 1), (5, 2), (4, 1)],
'queen': [(4, 5), (2, 4), (1, 3), (2, 6), (1, 7), (4, 4)],
'qsknight': [(3, 3), (1, 3)]}
opponentposition={'ksknight': (1, 3),
'ksbishop': (1, 6),
'king': (6, 1),
'queen': (4, 5),
'qsknight': (3, 3)}
if king in [z for v in opponentmoves.values() for z in v]:
piece=[key for key in opponentmoves if king in opponentmoves[key]]
opponentpieceposition=opponentposition.get(piece)
print(opponentpieceposition)
</code></pre>