我的两个列表中都有子列表
list1 = [['+', '+', '-'], ['+', '-', '+'], ['-', '+'], ['+', '+', '+']]
list2 = [['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))
答案 0 :(得分: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']]
答案 1 :(得分:0)
您可以使用函数map()
和运算符concat
(或add
)来代替嵌套的listcomp:
from operator import concat
[list(map(concat, i, j)) for i, j in zip(list1, list2)]