我想知道如何比较两个2-Dim列表的位置。例如,我有两个带有0和1的2-Dim列表,我想创建一个函数,如果1在两个列表中的同一位置,则返回True。
List1=[[0,0,0],
[1,0,0],
[0,0,1]]
List1=[[0,0,0],
[1,0,0],
[0,0,0]]
这是我的开始,但我不知道如何继续。
def collide(a,b):
for x in range(3):
for y in range(3):
collide(List1, List2)
任何提示?我在想
if a[x][y]==1 and b[x][y]==1:
return True
但这可能不正确。
答案 0 :(得分:1)
any(
cell_1 and cell_2
for row_1, row_2 in zip(list_1, list_2)
for cell_1, cell_2 in zip(row_1, row_2)
)
答案 1 :(得分:0)
如果collide(a,b)
如果所有相应的元素都相同则返回True,否则返回False,那么你希望嵌套循环中的if为:
if a[x][y] != b[x][y]:
return False
然后,在外部循环之后,您可以return True
(从那时起,您已经检查了所有元素,但没有一个是不匹配的。)
答案 2 :(得分:0)
这对我来说很好,虽然你没有考虑到这两个条目也是0。
您可能还想使用列表的实际长度。所以相反
for x in range(len(a)):
for y in range(len(a[x])):
...
假设列表的大小相同。
确保在函数结束时也返回false(因为如果发生碰撞,它就不会到达那一行)