如何在Python中以这种方式添加两个列表?

时间:2014-12-09 20:06:13

标签: python

说是否

list1 = ['apple', 'orange', 'grape']
list2 = ['pineapple', 'banana', 'pear']

你怎么能添加它们以便

list3 = ['apple pineapple', 'orange banana', 'grape pear']

在for语句中使用for语句我可以解决这个问题:

applepineapple
applebanana
applepear
orangepineapple
orangebanana
orangepear
grapepineapple
grapebanana
grapepear

谢谢!

4 个答案:

答案 0 :(得分:5)

有很多方法可以做到这一点。一种方法是使用zip列表理解:

>>> zip(list1, list2)
[('apple', 'pineapple'), ('orange', 'banana'), ('grape', 'pear')]
>>> ['{} {}'.format(x, y) for x, y in zip(list1, list2)]
['apple pineapple', 'orange banana', 'grape pear']

您还可以使用连接(x + ' ' + y)或插值('%s %s' % (x, y))来形成字符串。

答案 1 :(得分:2)

>>> list1 = ['apple', 'orange', 'grape'] 
>>> list2 = ['pineapple', 'banana', 'pear']
>>> [ list1[x]+ " " +list2[x] for x in range(len(list1))]   # both should must have same length
['apple pineapple', 'orange banana', 'grape pear']

pythonic方式:

>>> map(" ".join,zip(list1,list2))
['apple pineapple', 'orange banana', 'grape pear']

答案 2 :(得分:1)

print ([' '.join(z) for z in zip(list1,list2)])

答案 3 :(得分:0)

您可以在以下行中执行以下操作:

  
    
      

new_list = map(lambda x:x [0] +'' + x [1],zip(list1,list2))

    
  

zip()采用两个序列和表单列表,其中第i个条目是包含第一个列表的第i个条目和第二个列表的第i个条目的元组。 map(func,sequence)将给定函数应用于序列。这两个命令将为您节省大量时间使用列表。