python - 用给定的字符串替换字符串的字符
问题描述
给定这个字符串'www__ww_www_'
我需要用'_'
以下字符串中的字符替换所有字符'1234'
。结果应该是'www12ww3www4'
。
TEXT = 'aio__oo_ecc_'
INSERT = '1234'
insert = list(INSERT)
ret = ''
for char in TEXT:
if char == '_':
ret += insert[0]
insert.pop(0)
else:
ret += char
print (ret)
>> aio12oo3ecc4
这样做的正确方法是什么?因为这似乎是最低效的方式。
解决方案
您可以使用字符串迭代器和生成器表达式,其中包含三元组:
TEXT = 'aio__oo_ecc_'
INSERT = '1234'
it = iter(INSERT)
print("".join(next(it) if x == "_" else x for x in TEXT))
好处包括避免使用ret += char
. 此外,pop(0)
需要将整个列表向前移动,因此它是线性的(最好是反转INSERT
并使用pop()
):
推荐阅读
- asp.net - asp.net核心中的mongodb驱动程序死锁
- .net - MSBuild 目标有时运行与构建无关
- php - Fopen 无法打开流 .ts
- javascript - 使用一个方法作为另一个方法的参数 *Java 处理*
- intellij-idea - 设置 Jetty/JDBC 工作区
- android - 如何彻底关闭 Android paho MQTT 服务?
- ios - 如何在 Swift 中将数据传输到幻灯片菜单
- android - 为 Firebase 通知后开始的活动构建任务堆栈
- c++ - 非空函数上的“空值不应被忽略”
- python - Tkinter - 弹跳图标脚本