Python - 连接两个列表
你好,我是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
解决这个问题的一种方法如下:
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']
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)
7
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如,有人可能在使用一个叫做“库”的东西时,发现它的某些功能没有按照预期工作。这个时候,大家通常会去问其他人,看看有没有人遇到过类似的问题。
在这种情况下,提问的方式很重要。你需要清楚地描述你遇到的问题,包括你使用的工具版本、你尝试过的解决方法,以及具体的错误信息。这样,别人才能更好地理解你的问题,并给出有效的帮助。
另外,提供一些代码示例也是很有帮助的。这样可以让别人更直观地看到你在做什么,可能更容易找到问题所在。
总之,提问的时候要尽量详细和清晰,这样才能提高得到帮助的机会。
List_C = ['{} {}'.format(x,y) for x,y in zip(List_A,List_B)]
12
你从两个列表中得到了压缩后的名字,简单地把每一对名字连接起来,就像这样:
print map(" ".join, zip(list_a, list_b))
# ['john walker', 'peter smith', 'paul anderson']