合并两个字符串列表

时间:2018-07-18 03:18:22

标签: python string

试图合并两个包含字符串元素的列表变量。例如,如果我有以下内容:

mystring1 = ['Luke', 'Han']
mystring2 = ['Skywalker', 'Solo']

我希望将它们组合为:

mystring3 = ['LukeSkywalker', 'HanSolo']

我确定我缺少一些简单的东西。任何指导都很棒!

5 个答案:

答案 0 :(得分:7)

map的两个列表简单地str.__add__

list(map(str.__add__, mystring1, mystring2))

这将输出:

['LukeSkywalker', 'HanSolo']

请注意,如果您想一次合并两个以上的字符串列表,则可以执行以下操作:

mystring1 = ['Luke', 'Han']
mystring2 = ['Skywalker', 'Solo']
mystring3 = ['Hero', 'Sidekick']
from functools import partial, reduce
print(list(reduce(partial(map, str.__add__), (mystring1, mystring2, mystring3))))

这将输出:

['LukeSkywalkerHero', 'HanSoloSidekick']

答案 1 :(得分:4)

只需使用zip,然后连接字符串即可。

这显然仅在您希望加入两个字符串的情况下才有效。如果还有更多,请像其他答案一样使用str.join。但是,使用2个字符串时,concat方法更具可读性。

>>> mystring1 = ['Luke', 'Han']
>>> mystring2 = ['Skywalker', 'Solo']
>>> 
>>> [s1 + s2 for s1, s2 in zip(mystring1, mystring2)]
['LukeSkywalker', 'HanSolo']

zip只需在每次迭代中从传递给它的每个可迭代对象中获取一个元素,然后返回这些元素的元组。 zip操作的中间结果看起来像

[('Luke', 'Skywalker'), ('Han', 'Solo')]

答案 2 :(得分:3)

以下方法应该起作用:

>>> mystring1 = ['Luke', 'Han']
>>> mystring2 = ['Skywalker', 'Solo']
>>> list(map(''.join, zip(mystring1, mystring2)))
['LukeSkywalker', 'HanSolo']
>>> 

答案 3 :(得分:1)

map(lambda x: x[0] + x[1], zip(mystring1, mystring2))

将这两个压缩在一起会产生一个可重复的2元组(如果使用Python 2,则为列表)。然后map遍历可迭代(resp。列表)以转换为所需的结果。

答案 4 :(得分:1)

pointer-events: none;

输出:

import pandas as pd
mystring1 = ['Luke', 'Han']
mystring2 = ['Skywalker', 'Solo']
df=pd.DataFrame([mystring1,mystring2]).T
df.columns=list('01')
print((df['0']+df['1']).tolist())