Как объединить два подсписка из двух разных списков в оригинале

#python #list #merge

#python #Список #объединить

Вопрос:

В обоих моих списках есть подсписки внутри них

список 1= [[' ', ' ', '-'], [' ', '-', ' '], ['-', ' '], [' ', ' ', ' ']]

список 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))
  

Ответ №1:

Проверьте с помощью

 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']]
  

Ответ №2:

Вместо вложенного listcomp вы можете использовать функцию map() с оператором concat (или add ):

 from operator import concat

[list(map(concat, i, j)) for i, j in zip(list1, list2)]