gpt4 book ai didi

python - 如何根据 Python 中的字典替换大字符串的子字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:11 25 4
gpt4 key购买 nike

我有一个长字符串("template"),其中包含 %MARK% 形式的“替换点”(对于单个给定标记,字符串中也可能出现更多次)。我想替换这些由 Python 字典控制的标记(它不包含标记的 % 符号),例如:

rep_dict = { "TITLE": "This is my title", "CONTENT": "Here it is the content" }

问题:简单地一个一个地调用replace()方法不是一个好的解决方案:之前的替换可能包含这些标记之一,然后不能被替换!

解决方案应该足够快,因为我的模板很大,而且我需要在一个大循环中替换其中的许多模板。我有一个非常丑陋和冗长的实现,其中包含许多 find(),在替换过程中计算原始字符串中的偏移量等。我希望有一个更好,更紧凑,和更快的解决方案。

最佳答案

最简单的解决方案是

import re
re.sub(r'%(.+?)%', lambda m: rep_dict[m.group(1)], YOUR_TEMPLATE)

不够快?有人说“不要使用正则表达式”,你服从了吗?使用 Python 中的一些代码解析您的模板会更加复杂和缓慢(不要忘记,re 是用 C 语言编写的)。

关于python - 如何根据 Python 中的字典替换大字符串的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7738562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com