如何合并原始中两个不同列表的两个子列表

问题描述 投票:3回答:2

我的两个列表中都有子列表

list1的= [['+', '+', '-'], ['+', '-', '+'], ['-', '+'], ['+', '+', '+']]

列表2 = [['x1', 'x2', '2x3'], ['2x1', 'x2', 'x3'], ['x1', 'x3'], ['3x1', '2x2', '4x3']]

如何基于相同的索引连接list1和list2并将结果保存在另一个列表中?

我期望的结果是:

list1 = [['+x1', '+x2', '-2x3'], ['+2x1', '-x2', '+x3'],['-x1', '+x3'],['+3x1', '+2x2', '+4x3']]

到目前为止,我已尝试仅为1个子列表执行此操作,但我没有运气保持子列表不变

for pair in itertools.product(list1[0], list2[0]):
    matrix3_with_signs.append(''.join(pair))
python arrays list merge linear
2个回答
4
投票

检查

x=[[m+n for m,n in zip(x,y)]for x , y in zip(list1,list2)]
x
Out[135]: 
[['+x1', '+x2', '-2x3'],
 ['+2x1', '-x2', '+x3'],
 ['-x1', '+x3'],
 ['+3x1', '+2x2', '+4x3']]

0
投票

您可以使用函数map()与运算符concat(或add)代替嵌套的listcomp:

from operator import concat

[list(map(concat, i, j)) for i, j in zip(list1, list2)]
© www.soinside.com 2019 - 2024. All rights reserved.