#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)]