合并Python中的多行字符串

2024-03-29 09:17:48 发布

您现在位置:Python中文网/ 问答频道 /正文

试图找出如何合并包含新行的多个字符串。在

所以:

"""line 1 
line 2 
line 3 
line 4"""

+

^{pr2}$

变成

"""line 1 addition 1
line 2 addition 2
line 3 addition 3
line 4 addition 4"""

但是有更多的条目。在

任何帮助都将不胜感激。在


Tags: 字符串line条目additionpr2
3条回答

您可以使用list comprehensionjoin连接字符串:

s1 = """line 1
line 2
line 3
line 4"""

s2 = """addition 1
addition 2 
addition 3 
addition 4"""

result = "\n".join([" ".join(elem) for elem in zip(s1.split("\n"), s2.split("\n"))])
print(result)

输出:

^{pr2}$

您可以在新行上拆分,然后压缩/压缩:

s1 = """line 1 
line 2 
line 3 
line 4"""

s2 = """addition 1 
addition 2 
addition 3 
addition 4"""

print('\n'.join(map(lambda l: l[0] + l[1],zip(s1.split('\n'), s2.split('\n')))))

您可以:

>>> L = '\n'.join(f'line {i}' for i in range(1, 5))
>>> A = '\n'.join(f'addition {i}' for i in range(1, 5))
>>> LA = '\n'.join(map(' '.join, zip(*map(str.split, (L, A), ('\n', '\n')))))
>>> 
>>> print(LA)
line 1 addition 1
line 2 addition 2
line 3 addition 3
line 4 addition 4

说明:使用splitjoin我们可以在新行(或我们选择的任何字符)处拆分以获得单独的行(作为列表),反之亦然。在

map是一种将同一函数应用于多个参数的方法。内部的map可能看起来有点轻浮,因为它基本上可以重写L.split('\n'), A.split('\n')。然而,由于OP请求的条目数远多于两个map,因此在这里实际上是一个不错的选择

zip我假设大家都知道,这里它返回('line 1', 'addition 1'), ('line 2', 'addition 2'), ...

接下来,我们使用map' '.join应用到每个对中,这就得到'line 1 addition 1', 'line 2 addition 2', ...

它仍然是重新加入他们与新线。在

相关问题 更多 >