比较两个二维列表

时间:2012-03-26 23:45:32

标签: python list function

我想知道如何比较两个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

但这可能不正确。

3 个答案:

答案 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(因为如果发生碰撞,它就不会到达那一行)

相关问题