1

我对python有点陌生。

我如何合并两个列表(两个字符串)并在 python 中相应地加入它们?

给定以下输入:

lista=['1','2','3']
listb=['a','b','c']

我想要以下输出:

['1|a','2|b','3|c']
4

4 回答 4

10

假设您实际上打算使用字符串,这应该有效:

>>> lista=[1,2,3]
>>> listb=['a','b','c']
>>> ["%s|%s" % (a,b) for a,b in zip(lista, listb)]
['1|a', '2|b', '3|c']
于 2012-04-11T19:39:46.897 回答
3

这仅在您的两个列表都包含字符串时才有效。否则,请使用其中一种格式化字符串解决方案(例如%s|%s)。

map('|'.join, zip(lista, listb))
于 2012-04-11T19:45:30.383 回答
2

列表推导通常更具可读性,但连接操作是让这个比例适合任意数量的列表的最好方法,并且读起来很好,所以我也会提出其他答案的合并:

>>>lista=['1','2','3']
>>>listb=['a','b','c']
>>>["|".join(items) for items in zip(lista, listb)]
['1|a', '2|b', '3|c']
于 2012-04-11T20:15:41.473 回答
1

可能有比这更优雅的东西

map(lambda(x,y): "%s|%s" % (x,y), zip(lista, listb))
于 2012-04-11T19:40:20.567 回答