Python中的替换函数笔记 一、字符串替换 - replace() 方法 (一)基本用法 1.在Python中,对于字符串类型,我们可以使用 replace() 方法来替换指定的子字符串。 1.语法:new_string = original_string.replace(old_substring, new_substring) 2.例如:original_string = "hello world" new_string = original_string.replace("world", "python") print(new_string) # 输出: hello python
1.这里,我们将原字符串 original_string 中的 "world" 子字符串替换成了 "python",并将结果存储在 new_string 中。原字符串 original_string 本身并没有被修改,因为字符串在Python中是不可变对象。
(二)指定替换次数 1.replace() 方法还可以指定替换的次数。 1.语法:new_string = original_string.replace(old_substring, new_substring, count) 2.其中 count 表示替换的最大次数。 3.例如:original_string = "hello hello world" new_string = original_string.replace("hello", "hi", 1) print(new_string) # 输出: hi hello world
1.在这个例子中,我们只将原字符串中的第一个 "hello" 替换成了 "hi",因为我们指定了替换次数为1。
二、正则表达式替换 - re.sub() 函数 (一)基本用法 1.当我们需要更复杂的替换规则,例如基于正则表达式的替换时,可以使用Python标准库中的 re 模块中的 sub() 函数。 1.首先需要导入 re 模块:import re 2.语法:new_string = re.sub(pattern, replacement, original_string) 3.例如,将字符串中的所有数字替换成星号():import re original_string = "abc123def456" new_string = re.sub(r'\d', '', original_string) print(new_string) # 输出: abcdef
1.这里的 r'\d' 是一个正则表达式,表示匹配任何数字字符。re.sub() 函数会在原字符串 original_string 中找到所有匹配 r'\d' 模式的子字符串,并将它们替换成星号(*)。
(二)使用分组 1.正则表达式中的分组可以在替换时被引用。 1.例如,我们想要将电话号码的格式从 (123)456 - 7890 转换为 123 - 456 - 7890。import re original_string = "(123)456 - 7890" new_string = re.sub(r'((\d{3}))(\d{3}) - (\d{4})', r'\1 - \2 - \3', original_string) print(new_string) # 输出: 123 - 456 - 7890
1.在这个例子中,r'\((\d{3})\)(\d{3}) - (\d{4}) 是一个正则表达式,其中 (\d{3}) 是分组,分别捕获电话号码中的区号、前三位和后四位。在替换字符串 r'\1 - \2 - \3' 中,\1、\2 和 \3 分别引用了前面捕获的分组内容。
三、在列表中的替换操作 1.如果我们有一个字符串列表,想要对每个字符串中的某个子字符串进行替换,可以使用列表推导式结合字符串的替换方法。 1.例如:string_list = ["hello world", "goodbye world"] new_list = [s.replace("world", "python") for s in string_list] print(new_list) # 输出: ['hello python', 'goodbye python']
1.这里我们使用列表推导式遍历 string_list 中的每个字符串,并对其中的 "world" 子字符串进行替换,将结果存储在新的列表 new_list 中。
四、总结 1.在Python中,replace() 方法适用于简单的字符串替换任务,它是字符串对象的一个内置方法,使用方便。 2.当需要更复杂的替换规则,特别是涉及到正则表达式的匹配时,re.sub() 函数是一个强大的工具,可以实现更灵活的替换操作。 3.在处理字符串列表时,可以结合列表推导式和字符串替换方法来对列表中的每个字符串进行替换操作。