【发布时间】:2017-07-19 08:44:37
【问题描述】:
考虑两个列表,例如:
L = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
M = [1, 2, 3, 4, 5, 6, 7, 8]
假设我们有一对必须匹配的元素 - 例如,(d, 6)。是否可以在这些元素处“对齐”列表,然后加入两个列表中仍有元素的列表 - 有点像 zip 和内部连接之间的交叉?
这可能是最好的例子。如上使用L 和M:
-
(d, 6)将导致[(a, 3), (b, 4), (c, 5), (d, 6), (e, 7), (f, 8)] -
(h, 2)将导致[(g, 1), (h, 2)] -
(a, 8)将导致[(a, 8)]
我的背景:我目前正在尝试构建一个能够通过阅读国际象棋符号来学习下棋的神经网络。这个问题与检查板上的对角线以更新棋子位置有关。例如,如果一个白色主教刚刚移动到 b7(棋盘右下角的一个方格),那么它一定来自 h1-a8 长对角线上的方格或 a6-c8 上的方格短对角线。
所以在我的例子中,L 和 M 的长度相同,因为它们对应于 8×8 棋盘上的等级和文件。但总的来说,我认为这些列表的长度可能不同。
【问题讨论】:
标签: python list python-3.x chess