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

Python中如何将字符串格式化为与另一字符串空格分布一致?

高效实现字符串按模板插入空格的方法

核心思路是直接以带空格的模板字符串(foo)为遍历基准,同步读取目标字符串(abc)的字符:遇到模板里的空格就直接保留,否则取目标字符串的下一个字符拼接结果,完全不用处理插入空格后的位置偏移问题,逻辑简单且效率拉满。

具体实现(Python)

def func(target_str, template_str):
    # 把目标字符串转成迭代器,方便逐个取字符
    target_iter = iter(target_str)
    result = []
    # 遍历模板的每个字符
    for char in template_str:
        if char == ' ':
            result.append(' ')
        else:
            # 取目标字符串的下一个字符
            result.append(next(target_iter))
    return ''.join(result)

测试验证

foo = "foofoo foo fo o"
abc = "abcabcabcabc"
print(func(abc, foo))  # 输出: abcabc abc ab c

为什么这个方法高效?

  • 时间复杂度是O(m),m是模板字符串的长度,只需要遍历一遍模板就能完成,属于线性时间操作,是理论上的最优效率。
  • 用列表收集结果,避免了字符串频繁拼接带来的性能损耗(Python中字符串是不可变对象,每次拼接都会生成新字符串,而列表的append操作是均摊O(1)的)。
  • 逻辑直观,不需要提前计算所有空格位置再处理偏移,不容易出错。

这个方法的前提是:模板字符串(foo)去掉空格后的字符数量,等于目标字符串(abc)的总长度,这也是题目里“两个长度相同的字符串”的实际含义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:42:44