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