Python - 连接2个列表

时间:2014-03-25 17:38:18

标签: python list python-2.7 concatenation

嗨,我是Python和这个论坛的新手。

我的问题:

我有两个清单:

list_a = ['john','peter','paul']
list_b = [ 'walker','smith','anderson']

我使用zip成功创建了这样的列表:

list_c = zip(list_a, list_b)
print list_c
# [ 'john','walker','peter','smith','paul','anderson']

但我要找的结果是一个列表:

list_d = ['john walker','peter smith','paul anderson']

无论我尝试什么,我都没有成功!我怎么能得到这个结果?

4 个答案:

答案 0 :(得分:12)

您从两个列表中获取压缩名称,只需加入每一对,如此

print map(" ".join, zip(list_a, list_b))
# ['john walker', 'peter smith', 'paul anderson']

答案 1 :(得分:6)

List_C = ['{} {}'.format(x,y) for x,y in zip(List_A,List_B)]

答案 2 :(得分:0)

如果list_a和list_b总是有相同的长度,那么试试吧:

list_c = [list_a[i]+' '+list_b[i] for i in xrange(0,len(list_a))]

另一方面,如果list_a和list_b可能有不同的长度,那么:

list_c=[]
for i in xrange(0,len(list_a) if len(list_a)>len(list_b) else len(list_b)):
    merged_item = (list_a[i] if i<len(list_a) else '')+\
                  (' ' if i<len(list_a) and i<len(list_b) else '')+\
                  (list_b[i] if i<len(list_b) else '')
    list_c.append(merged_item)

答案 3 :(得分:0)

解决此问题的一种方法如下:

list_d = [] # desired output list
list_a = ['john', 'peter', 'paul'] 
list_b = ['walker', 'smith', 'anderson']

for i in range(len(list_a if len(list_a) < len(list_b) else list_b)):
    f = " ".join([list_a[i], list_b[i]])
    list_d.append(f)
print d

执行上述代码时的输出是:

['john walker', 'peter smith', 'paul anderson']