如何将两个列表的元素添加到一个列表中?

时间:2012-07-28 17:11:25

标签: python list

例如,我有一个这样的列表:

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)

我该怎么办?任何帮助都会非常棒!

4 个答案:

答案 0 :(得分:22)

您可以将列表推导与zip

一起使用
list3 = [a + b for a, b in zip(list1, list2)]

zip通过组合您提供的迭代中的元素来生成元组列表。因此,在您的情况下,它会返回list1list2中的元素对,直到最先耗尽的元素。

答案 1 :(得分:1)

使用您尝试的循环的解决方案是一种方式,这比Xions解决方案更适合初学者。

list3 = []
for index, item in enumerate(list1):
    list3.append(list1[index] + list2[index])

这也适用于更短的解决方案。使用map()和lambda,我比zip更喜欢这个,但这取决于每个人

list3 = map(lambda x, y: str(x) + str(y), list1, list2);

答案 2 :(得分:0)

对于这个或任何两个相同大小的列表,你也可以这样使用:

for i in range(len(list1)):
    list3[i]=list1[i]+list2[i]

答案 3 :(得分:0)

使用zip

list3 = []
for l1,l2 in zip(list1,list2):
    list3.append(l1+l2)

list3 = ['goodboy', 'badgirl', 'tallguy', 'bigman']