Skip to main content
 首页 » 编程设计

python之替换所有以某个前缀开头的字符串

2025年05月04日18jackei

我有以下格式的字符串:

str = "1:20 2:25 3:0.432 2:-17 10:12" 

例如,我想将所有以 "2:" 开头的字符串替换为 "2:0",从而得到:

str = "1:20 2:0 3:0.432 2:0 10:12" 

replace 函数不够用,因为它会导致

str.replace("2:", "2:0") = "1:20 2:025 3:0.432 2:0-17 10:12" 

是否有用于此的 Python 函数?

请您参考如下方法:

您可以使用 str.startswith 完成您的任务和 str.split :

s = "1:20 2:25 3:0.432 2:-17 10:12" 
 
print(" ".join(["2:0" if ch.startswith("2:") else ch for ch in s.split()] 

输出:

1:20 2:0 3:0.432 2:0 10:12 

ch.startswith("2:") 检查拆分后的每个子字符串,看它是否以 "2:" 开头,如果是,我们将其替换为 "2:0" 否则我们只保留调用 str.join 重新加入字符串的原始子字符串。