使用字典替换字符串

2024-04-17

我正在学习 python 并处理字符串,以找到使用字典进行字符串替换的更好方法

我有一个包含自定义占位符的字符串,如下所示:

placeholder_prefix = '$['
placeholder_suffix = ']'

dict={'key1':'string','key2':placeholders}
msg='This $[key1] contains custom $[key2]'

我希望占位符(“前缀后缀”和“键”)应替换为字典中的“值”,如下所示:

'该字符串包含自定义占位符'

我可以通过编写函数得到如下消息:“此[字符串]包含自定义[占位符]”:

def replace_all(text):
    for key, value in brand_dictionary.iteritems():
        text = text.replace(key, value).replace('$[', '[')        
    return text

我可以尝试不同的替换来删除“$[”和“]”,但这可以替换作为消息本身的一部分(而不是占位符的一部分)包含的任何字符(如“$”、“[”、“]”)。所以我想避免这种情况并仅替换自定义占位符。

我可以想到正则表达式(用于占位符),但由于我的消息包含多个键,所以看起来它可能没有用?

有没有更好的方法在 python 中做到这一点?


尝试这个:

dict={key1:'string',key2:placeholders}

msg='This {key1} contains custom {key2}'.format(**dict)

我跑的例子:

>>> msg="hello {a} {b}"
>>> t={"a":"aa","b":"bb"}
>>> msg="hello {a} {b}".format(**t)
>>> msg
'hello aa bb'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用字典替换字符串 的相关文章

随机推荐

  • 如何在rails中使用动态绑定执行原始更新sql

    我想执行一个更新原始 SQL 如下所示 update table set f1 where f2 and f3 这条 SQL 将被执行ActiveRecord Base connection execute 但我不知道如何将动态参数值传递到
  • 捕获测试用例顺序

    我可以保证多个的执行顺序吗TEST CASEs with Catch https github com philsquared Catch 我正在使用 LLVM 测试一些代码 它们有一些我需要显式初始化的卑鄙的全局状态 现在我有一个这样的测
  • RODBC 错误 - ODBC 连接失败 - 无法使用我的 Mac 连接到 MySQL(小牛)

    我正在尝试在我的 mac 小牛 上使用 RODBC 通过 R 连接到 mysql 数据库 但经过几个小时的愚蠢努力后 我仍然无法让它工作 当我尝试连接到数据库时 RODBC 抛出此错误 错误消息非常简洁 我不知道这意味着什么 ch 我按照以
  • AWS RDS 公共访问

    我对 AWS 配置感到困惑 我的目标是创建一个可从网络内部和外部访问的数据库 这是我所拥有的 RDS 实例运行 postgresql VPC 内部的连接正常工作 端点被设置为可公开访问 当从外部访问时 实际上确实可以解析 但是 连接挂起 表
  • 如何验证一个 XSD 架构是另一个 XSD 架构的子集?

    如何验证一个 XSD 架构是否是另一个 XSD 架构的子集 我们正在使用 蓝图 XSD 模式的集合 定义子组件可用的所有可能的输入或输出 创建一个系统应用程序 许多子组件正在被实现 并且这些子组件使用 XML 文件在它们之间传递数据 每个子
  • 选择特定日期之后的数据

    我希望能够从数据框中选择特定日期之后或之前的日期 例如 使用黄金价格的 quandl 数据 pGold lt read csv http www quandl com api v1 datasets BUNDESBANK BBK01 WT5
  • 从光滑表定义创建表

    在 PlaySlick 示例中 有一个包含示例数据访问对象的文件 https github com playframework play slick blob master samples basic app dao CatDAO scal
  • 条件渲染和 ReactCSSTransitionGroup 动画

    我制作了一个小应用程序 它根据 Redux 状态呈现不同的组件 我想在其中一个组件渲染时应用 淡入淡出 动画 但是 由于某种原因 它对我不起作用 这是我到目前为止所拥有的 内容 js class Content extends Compon
  • 根据速度或其他变量向左、向右、向上和向下滑动

    我有一个从简单的手势扩展而来的类 我正在使用 onfling 方法 class MyGestureListener extends GestureDetector SimpleOnGestureListener Override publi
  • 这是 C 中未定义的行为吗? [复制]

    这个问题在这里已经有答案了 我正在 gcc 上运行我的 C 代码来理解前 后增量运算符 然而我看到的结果并不是我所期望的 就像第 6 行一样 因为 i 是 5 所以应该是 8 7 6 5 5 但它是8 7 6 5 8 然后到最后一行 显示1
  • 如何在 PHP 中的会话中存储对象?

    您好 我想使用类似的类在会话中存储或保存对象SessionHandler或数组 SESSION 我已经看到如果我序列化该对象是可能的 并且我不想丢失该对象实例的方法 我已经看到序列化是可能的 但我想要存储的对象是由 PDOStatement
  • Windows 版 GitHub:登录失败

    我当时用的是git scm http git scm com用客户端很久了 看到了一个 GitHub for Windows 客户端 为什么不试试呢 我用CCleaner删除了git scm 然后安装了这个客户端 在登录阶段 它显示 登录失
  • Proguard AWS s3 问题

    尝试为 amazon s3 实现 proguard 时遇到一个真正的问题 它在第 29 行加载应用程序时不断崩溃 即 s3Client new AmazonS3Client new BasicAWSCredentials Constants
  • 对行进行排序后,Ag-grid 拖放不起作用

    在 Ag grid react 上对行进行排序后 拖放停止工作 在排序之前 拖放已全部设置完毕并且运行良好 postSort API 似乎没有什么可以实现我需要的东西 重置行 甚至设置可拖动 就像选择一样 postSort nodes gt
  • 从谷歌地图中删除标记簇[不仅仅是标记]

    在我的phonegapp cordova应用程序中 我使用谷歌地图工具 有时我需要更改其上显示的点 我发现了一些有用的代码here https developers google com maps documentation javascr
  • 集成 Gitlab 和 TravisCi

    有没有办法将 Travis Ci 与 Gitlab 集成 或者至少使用用户名和密码而不是 Github 凭据登录 TravisCi 不 截至目前 Travis CI 与 GitHub 严格绑定 虽然确实有关于减少这一要求的讨论 但它仍然存在
  • 为什么 std::pow(double, int) 从 C++11 中删除?

    在调查的同时计算 p q 求幂 的有效方法 其中 q 是整数 https stackoverflow com questions 5625431回顾 C 98 和 C 11 标准 我注意到显然std pow double int C 11
  • Google 脚本:将列中的新值附加到另一个工作表

    我一直在研究这个项目 但无法让它按照我想要的方式工作 我有两张表 其中一列具有唯一 ID 我需要确保每当在一张工作表 Sheet1 中添加新 ID 时 它都会被复制到另一张工作表 Sheet2 中的最后一个空行 如果该值已经存在 请确保它忽
  • 解析日期后从 Oracle Select 语句返回数字

    我想编写一个 Oracle SQL select 语句 告诉它是否可以通过返回代码来解析给定格式的日期字符串 失败时返回零 异常 成功时返回正数 SELECT CASE WHEN PARSING SUCCESSFUL ie to date
  • 使用字典替换字符串

    我正在学习 python 并处理字符串 以找到使用字典进行字符串替换的更好方法 我有一个包含自定义占位符的字符串 如下所示 placeholder prefix placeholder suffix dict key1 string key