首页 > 解决方案 > 如何比较两个二维数组以查看它们的第二个元素是否匹配?

问题描述

所以我有 2 个二维数组。

lefts = [[0,21],[0,23]]
rights = [[1,21],[1,23]]

我想检查 lefts[0][1] 是否匹配任何权利[n 次][1]。所以在这种情况下 0,21 将首先检查。在任何权利[][1] 中是 21。如果是,则转到左侧 0,23 的下一个第二个元素。最后,如果两个数组都匹配,则返回 True,如果仍有一个元素挂在右侧或左侧,则返回 False。因此,如果权限有另一个数组 [1,22],这将返回 False。

我的尝试决定只创建 2 个新列表以将 2d 数组的第二个元素附加到。

check_lefts = []
check_rights = []
for i in range(len(left)):
    check_lefts.append(left[i][1])
for i in range(len(right)):
    check_rights.append(right[i][1])

if len(check_lefts) >= len(check_rights):
    for i in check_lefts:
        if i in check_rights:
            return True
        else:
            return False
elif len(check_lefts) < len(check_rights):
    for i in check_rights:
        if i in check_lefts:
            return True
        else:
            return False

标签: pythonarrays

解决方案


如果两个数组的长度始终相同,请尝试以下代码:为了测试,我添加了打印件。您拥有的代码有效,您唯一需要更改的是,如果它们不相同,则循环中断。如果你想返回 False 让它成为一个函数。再次,如果数组不相等,您应该更改循环以迭代最长数组的长度。

     lefts = [[0,21],[0,23]]
     rights = [[1,21], [1,22]]


     for i in range(len(lefts)):
        if lefts[i][1] != rights[i][1]:
            print("False")
            break
        //delete the next lines    
        else:
            print("True")

推荐阅读