如何快速实现大段文本块的横向拼接输出?
更高效的多行字符串对应拼接方案
嘿,你现在的写法虽然能实现需求,但硬编码了range(3),不够灵活,而且还有更简洁高效的方式,我给你列两个实用方案:
方案1:用zip配对每行(通用且易读)
zip可以自动把两个字符串按行配对,不用手动指定行数,代码更通用,不管你的字符串有多少行(只要两行数一致)都能处理:
a = """CAC ABA CAC""" b = """AAA BBB CCC""" # 分割成每行,配对后拼接,再用换行符连接 print('\n'.join(x + y for x, y in zip(a.split('\n'), b.split('\n'))))
输出就是你想要的:
CACAAA ABABBB CACCCC
这个写法的好处是不需要硬编码行数,如果后续a或b的行数变化,代码不用修改,也不会出现索引越界的问题。
方案2:用map+str.__add__(性能更优)
如果追求极致简洁和性能,可以用map结合字符串的加法方法,map是C实现的循环,比Python层面的生成器表达式在处理大量行时略快:
print('\n'.join(map(str.__add__, a.split('\n'), b.split('\n'))))
这里map(str.__add__, ...)会把每一对(x,y)自动执行x + y,和方案1的效果完全一样,但代码更短,效率更高。
内容的提问来源于stack exchange,提问作者UnsignedByte
相关产品推荐
相关产品推荐

