首页 > 解决方案 > 并排加入二维列表

问题描述

我正在尝试并排加入两个 2d 列表。但是我遇到了麻烦,这就是我到目前为止所拥有的

def join_map_side(map1, map2):
ans = []

    if len(map1) != len(map2):
        return None
    if len(map1) == len(map2):
       for check in range(len(map1)):
            if len(map1) == len(map2):
                ans = [[].append(x) for x in list(zip(map1,map2))]


return ans
print(join_map_side([[1,2],[5,6]], [[3,4],[7,8]]))

这将返回 [5, 6, 7, 8] 但我希望它返回 [[1,2,3,4],[5,6,7,8]]。谁能帮忙?

标签: pythonpython-3.xlist

解决方案


您可以使用zip. 为了简单起见,我将省略尺寸检查。

ans = [u + v for u, v in zip(map1, map2)]

这是一个更完整的版本,包含在一个函数中,以防万一您确实需要该大小检查。但是,如果您可以保证输入列表的长度相同,或者您不介意从较长的列表中丢失尾随子列表,我推荐使用更简单的版本。

def join_map_side(map1, map2):
    if len(map1) == len(map2):
        return [u + v for u, v in zip(map1, map2)]

推荐阅读