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

Python如何动态将变量值插入字符串,实现动态替换或拼接

方案1:使用f-string(Python 3.6+ 首选,可读性最高)

直接定义字符串模板,将变量放在{}占位符中即可自动拼接:

start = 0
length = 100
s = f"blah blah start={start} length={length}"

如果是URL场景,参数较多时也能清晰维护,不需要手动拼接字符串。

方案2:使用str.format()(适配低版本Python,模板可提前存储)

如果模板是预先定义、动态读取的,可以用format方法传参:

# 模板可以提前配置、从其他位置读取
template = "blah blah start={start} length={length}"
start = 0
length = 100
s = template.format(start=start, length=length)

如果参数较多,可以把所有参数存在字典里一次性解包传入:

params = {"start": 0, "length": 100, "other_param": "test"}
template = "blah blah start={start} length={length} other={other_param}"
s = template.format(**params)

方案3:正则匹配替换(适合直接修改已有字符串,无需调整模板)

如果不想修改原有字符串的结构,直接匹配替换对应参数值即可:

import re
s = "blah blah start=0 length=10"
start = 0
length = 100
s = re.sub(r'start=\d+', f'start={start}', s)
s = re.sub(r'length=\d+', f'length={length}', s)

方案4:URL专用处理(生产环境推荐,避免编码错误)

如果s是标准URL,建议用官方库urllib.parse处理参数,适配各种特殊字符、多参数场景:

import urllib.parse

start = 0
length = 100
s = "https://example.com/path?blah=blah&start=0&length=10"

# 拆解URL
parsed_url = urllib.parse.urlparse(s)
# 提取查询参数转为字典
query_params = urllib.parse.parse_qs(parsed_url.query)
# 修改参数值
query_params["start"] = [str(start)]
query_params["length"] = [str(length)]
# 重新拼接查询参数
new_query = urllib.parse.urlencode(query_params, doseq=True)
# 生成新URL
new_s = urllib.parse.urlunparse(parsed_url._replace(query=new_query))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:54:05