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

2024-03-29 02:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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)

我该怎么办?任何帮助都太好了!


Tags: in列表for单子badgoodboybig
3条回答

您可以对zip使用列表理解:

list3 = [a + b for a, b in zip(list1, list2)]

zip通过组合给定的iterable中的元素,生成元组列表。所以在您的例子中,它将返回来自list1list2的元素对,直到首先耗尽的元素为止。

使用您尝试的循环的解决方案是一种方法,这比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);

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

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

相关问题 更多 >