并排加入二维列表

时间:2018-10-23 15:21:03

标签: python python-3.x list

我正在尝试并排加入两个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]]。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

您可以使用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)]

答案 1 :(得分:0)

这是直的-

def join_map_side(map1, map2):
    ans = []
    if len(map1) == len(map2):
        for index in range(0,len(map1)):
            ans.append(map1[index] + map2[index])
    return ans

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

@PM 2Ring-这种zip方法很聪明。看来我需要了解更多有关python的信息。