试图合并两个包含字符串元素的列表变量。例如,如果我有以下内容:
mystring1 = ['Luke', 'Han']
mystring2 = ['Skywalker', 'Solo']
我希望将它们组合为:
mystring3 = ['LukeSkywalker', 'HanSolo']
我确定我缺少一些简单的东西。任何指导都很棒!
答案 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())