Как добавить элементы из двух списков в один список?
Например, у меня есть список вроде этого:
list1 = [good, bad, tall, big]
list2 = [boy, girl, guy, man]
и я хочу сделать такой список:
list3 = [goodboy, badgirl, tallguy, bigman]
Я пробовал что-то вроде этого:
list3=[]
list3 = list1 + list2
но это будет содержать только значение list1
Итак, я использовал for
:
list3 = []
for a in list1:
for b in list2:
c = a + b
list3.append(c)
но это приведет к слишком большому количеству списков (в этом случае 4 * 4 = 16 из них)
Что мне делать? Любая помощь будет действительно замечательной!
Ответы
Ответ 1
Вы можете использовать списки с zip
:
list3 = [a + b for a, b in zip(list1, list2)]
zip
создает список кортежей путем объединения элементов из итераций, которые вы ему даете. Таким образом, в вашем случае он вернет пары элементов из list1
и list2
, вплоть до того, что изначально исчерпано.
Ответ 2
Решение, использующее цикл, который вы пытаетесь, является одним из способов, это более дружелюбный к новичкам, чем решение Xions.
list3 = []
for index, item in enumerate(list1):
list3.append(list1[index] + list2[index])
Это также будет работать для более короткого решения. Используя map() и лямбда, я предпочитаю это над zip, но это зависит от всех
list3 = map(lambda x, y: str(x) + str(y), list1, list2);
Ответ 3
для этого или любых двух списков одинакового размера, которые вы также можете использовать следующим образом:
for i in range(len(list1)):
list3[i]=list1[i]+list2[i]
Ответ 4
Использование zip
list3 = []
for l1,l2 in zip(list1,list2):
list3.append(l1+l2)
list3 = ['goodboy', 'badgirl', 'tallguy', 'bigman']