首页 > 解决方案 > Python 3.8:合并 2 个复合列表

问题描述

我有 2 个列表:

l1 = [[1.56, 2.04],[0.69, 6.34],[1.14, 7.59],[1.35, 3.01],[0.92, 8.33]]

l2 = [[3.45, -11.53],[3.20, -11.60],[3.33, -11.56],[3.39, -11.55],[3.26, -11.5]]

我想合并这两个,这样输出是:

[[1.56,2.04,3.45,-11.53],[1.14,7.59,3.20,-11.60],[1.14, 7.59,3.33, -11.56],[1.35, 3.01,3.39, -11.55],[0.92, 8.33,3.26, -11.5]]

第二个列表的第一个元素必须与第一个列表的第一个元素合并,依此类推。

我努力了:

l1 = [[1.56, 2.04],[0.69, 6.34],[1.14, 7.59],[1.35, 3.01],[0.92, 8.33]]
l2 = [[3.45, -11.53],[3.20, -11.60],[3.33, -11.56],[3.39, -11.55],[3.26, -11.5]]

l3=[]

for i in l1:
    for j in l2:
        r = i+j
        l3.append(r)
display(l3)

但是输出真的很奇怪:

[[1.56, 2.04, 3.45, -11.53],
 [1.56, 2.04, 3.2, -11.6],
 [1.56, 2.04, 3.33, -11.56],
 [1.56, 2.04, 3.39, -11.55],
 [1.56, 2.04, 3.26, -11.5],
 [0.69, 6.34, 3.45, -11.53],
 [0.69, 6.34, 3.2, -11.6],
 [0.69, 6.34, 3.33, -11.56],
 [0.69, 6.34, 3.39, -11.55],
 [0.69, 6.34, 3.26, -11.5],
 [1.14, 7.59, 3.45, -11.53],
 [1.14, 7.59, 3.2, -11.6],
 [1.14, 7.59, 3.33, -11.56],
 [1.14, 7.59, 3.39, -11.55],
 [1.14, 7.59, 3.26, -11.5],
 [1.35, 3.01, 3.45, -11.53],
 [1.35, 3.01, 3.2, -11.6],
 [1.35, 3.01, 3.33, -11.56],
 [1.35, 3.01, 3.39, -11.55],
 [1.35, 3.01, 3.26, -11.5],
 [0.92, 8.33, 3.45, -11.53],
 [0.92, 8.33, 3.2, -11.6],
 [0.92, 8.33, 3.33, -11.56],
 [0.92, 8.33, 3.39, -11.55],
 [0.92, 8.33, 3.26, -11.5]]

怎样才能达到预期的输出?请帮忙。

标签: python-3.xarraylistconcatenation

解决方案


使用邮编:

l3 = list()
for one, two in zip(l1, l2):
    l3.append(one + two)

或者使用列表理解的简洁版本:

l3 = [one + two for one, two in zip(l1, l2)]

推荐阅读