Как перечислить два элемента из двух разных списков python как один элемент в новом списке?

#python #python-3.x #list

Вопрос:

Может ли кто-нибудь помочь мне с нижеследующим? Заранее спасибо

 list1 = ['123', '456', '789']
list2 = ['some text', 'some more text', 'additional string']

for x,y in zip(list1,list2):
    listFinal = [x ' '   y for x in list1 for y in list2]
 

Текущий результат:

 ['123 some text', '123 some more text', '123 additional string', '456 some text', '456 some more text', '456 additional string', '789 some text', '789 some more text', '789 additional string']
 

Ожидаемый результат:

 ['123 some text', '456 some more text', '789 additional string']
 

Ответ №1:

Использование некоторых функциональных утилит:

 listFinal = [*map(' '.join, zip(list1, list2))]
 

Документы по:

Ответ №2:

listFinal = [x ' ' y for x in list1 for y in list2]

Это делает zip() функцию бесполезной. Вы повторяете первый список, затем второй список. Это создает 3 копии элемента.

Вы можете просмотреть его следующим образом:

 for x in list1:
    for y in list2:
        print(x " " y)
 

Это то, что в настоящее время делает код. Ваш zip() метод был правильным.

Вы можете сделать это вместо этого.

 list1 = ['123', '456', '789']
list2 = ['some text', 'some more text', 'additional string']
list3=[x   ' '   y for x, y in zip(list1, list2)]
 

Ответ №3:

вы могли бы просто сделать:

 for i in range(0, len(list1) ):
    list1[i]  = " "   list2[i]