You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中逐个字符拼接两个或多个字符串?

解决多字符串逐个字符交叉拼接的问题

嘿,这个需求我之前也碰到过,用Python的内置工具就能轻松实现,不管是2个还是N个字符串都能搞定,完全不用纠结+运算符的局限。

核心思路

+运算符只能把整个字符串直接拼接(比如a+b会得到helloworld),而我们需要的是逐个位置取所有字符串的对应字符,再把这些字符拼接起来。这里的关键工具就是zip()函数——它能把多个可迭代对象的对应元素打包成元组,正好满足我们的需求。

1. 两个字符串的情况

直接用zip()把两个字符串的对应字符配对,再把每一对字符拼接,最后把所有结果连起来就行:

a = 'hello'
b = 'world'
# 用生成器表达式遍历zip的每一对字符,拼接后再整体连接
result = ''.join(''.join(pair) for pair in zip(a, b))
print(result)  # 输出: hweolellod

2. 处理长度不一致的字符串

如果你的字符串长度不一样,zip()会以最短的那个为准截断。要是想保留长字符串剩下的字符,可以用itertools.zip_longest(),它会用指定的填充值补全短的字符串:

from itertools import zip_longest

a = 'hello'
b = 'world!'  # 比a多一个字符
result = ''.join(''.join(pair) for pair in zip_longest(a, b, fillvalue=''))
print(result)  # 输出: hweolellod!

3. 三个及以上字符串的情况

zip()支持传入任意数量的可迭代对象,所以三个或更多字符串的处理逻辑和两个完全一样:

a = 'abc'
b = 'def'
c = 'ghi'
result = ''.join(''.join(group) for group in zip(a, b, c))
print(result)  # 输出: adgbehcfi

简单来说,不管有多少个字符串,zip()都会把每个位置的所有字符打包成一个组,我们只需要把每个组里的字符拼接,再把所有组的结果连起来就完成了交叉拼接。

内容的提问来源于stack exchange,提问作者Noob Saibot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:26:58