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

如何用列表中的值依次替换字符串中的重复占位符?

Python实现占位符依次替换需求

你原来的思路有问题:直接用Sentence.replace("?", Color[0])会一次性把所有?替换成同一个颜色,没法实现依次替换的效果。下面给你两种可行的实现方式:

方法一:循环+replace指定替换次数

利用str.replace()的第三个参数count,每次只替换第一个出现的?,遍历颜色列表完成依次替换:

Sentence = "Person A has ? baloon, Person B has ? baloon Person C has ? baloon"
Color = ["Black", "Blue", "Red", "Green"]

final_sentence = Sentence
for color in Color:
    # count=1 表示只替换第一个匹配的?
    final_sentence = final_sentence.replace("?", color, 1)

print(final_sentence)
# 输出:Person A has Black baloon, Person B has Blue baloon Person C has Red baloon

如果颜色列表元素个数多于占位符数量,多出来的颜色会被忽略;如果占位符数量多于颜色元素,剩余的?会保留在字符串中。

方法二:正则表达式+自定义替换函数

用re.sub()配合计数器,逐个替换每个?:

import re

Sentence = "Person A has ? baloon, Person B has ? baloon Person C has ? baloon"
Color = ["Black", "Blue", "Red", "Green"]

count = 0
def replace_placeholder(match):
    nonlocal count
    if count < len(Color):
        result = Color[count]
        count += 1
        return result
    # 颜色用完后,保留原占位符
    return match.group(0)

final_sentence = re.sub(r'\?', replace_placeholder, Sentence)
print(final_sentence)

这种方式更灵活,适合复杂的占位符匹配场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 04:34:56