【发布时间】:2017-08-09 04:26:09
【问题描述】:
我正在创建一个表示棋盘的字典,其中键是表示位置的坐标对,值是表示棋子类型的字符串。例如:
playerPieces = { (0,0):'R', (1,0):'S', (2,0):'B', (3,0):'Q' ... }
两个玩家都有一本这样的字典。我的问题在于试图迭代玩家的所有棋子。我尝试了三种不同的方法,但似乎都不起作用。
-
如果我尝试将字典解压缩成键值对,如下所示:
for position, piece in playerPieces:
相反,position 和 piece 分别解压缩密钥对的第一个和第二个元素(因此对于通过 playerPieces 的第一次迭代,我会得到 position == 0 和 piece == 0。不是很有帮助。
-
如果我尝试以下方法:
for (col, row), piece in playerPieces:
我收到错误TypeError: 'int' object is not iterable,目前我不明白。
-
最后,如果我去掉列周围的括号,像这样的行对:
for col, row, piece in playerPieces:
我当然会收到错误ValueError: need more than 2 values to unpack。
那么,还有什么其他选择呢?这可以做到吗?第二个选项对我来说似乎是最有可能的,所以我想理解 TypeError 是弄清楚发生了什么的关键,但我有点不知所措。
【问题讨论】:
-
for (col, row), piece in playerPieces.items()...
标签: python dictionary iteration