繁体   English   中英

Python - 连接2个列表

[英]Python - concatenate 2 lists

嗨,我是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']

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

你从两个列表中得到压缩名称,只需加入每一对,就像这样

print map(" ".join, zip(list_a, list_b))
# ['john walker', 'peter smith', 'paul anderson']
List_C = ['{} {}'.format(x,y) for x,y in zip(List_A,List_B)]

如果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)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM