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

Например, у меня есть список вроде этого:

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