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