2024-09-22 14:39:25 发布
网友
我有一个带有占位符的位置字符串,用作“#”。替换占位符的另一个字符串。我想按顺序替换它们(比如格式说明符)。在Python中是怎样做的
location = '/tmp/#/dir1/#/some_dirx/dir/var/2/#/dir3' replacements = 'xyz' result = '/tmp/x/dir1/y/some_dirx/dir/var/2/z/dir3'
您应该使用字符串的^{}方法,如下所示:
for replacement in replacements: location = location.replace('#', replacement, 1)
必须使用第三个参数count,以便只替换一次占位符。否则,每次找到占位符时它都会被替换
count
如果位置字符串不包含格式说明符({}),则可以执行以下操作:
{}
location = '/tmp/#/dir1/#/some_dirx/dir/var/2/#/dir3' replacements='xyz' print(location.replace("#", "{}").format(*replacements))
输出
/tmp/x/dir1/y/some_dirx/dir/var/2/z/dir3
或者,您可以使用re.sub中的repl可以是一个函数这一事实:
import re from itertools import count location = '/tmp/#/dir1/#/some_dirx/dir/var/2/#/dir3' def repl(match, replacements='xyz', index=count()): return replacements[next(index)] print(re.sub('#', repl, location))
您应该使用字符串的^{} 方法,如下所示:
必须使用第三个参数
count
,以便只替换一次占位符。否则,每次找到占位符时它都会被替换如果位置字符串不包含格式说明符(
{}
),则可以执行以下操作:输出
或者,您可以使用re.sub中的repl可以是一个函数这一事实:
输出
相关问题 更多 >
编程相关推荐