在 Python 中替换字符串中的第一个或前 N 个字符

目录

Replace the first character in a String in Python

  1. 替换字符串中的第一个或前 N 个字符
  2. 使用 replace() 替换字符串中的第一个或前 N 个字符
  3. 使用 re.sub() 替换字符串中的第一个或前 N 个字符
  4. 使用 list() 替换字符串中的第一个或前 N 个字符

在 Python 中替换字符串中的第一个或前 N 个字符

使用字符串切片替换字符串中的第一个或前 N 个字符。

字符串的切片表示第一个 N 之后的字符,因此我们可以使用加法 (+) 运算符在替换字符前面加上。

主程序
my_str = 'bobbyhadz.com' # ✅ replace first character in a string new_str = '_' + my_str[1:] print(new_str) # 👉️ _obbyhadz.com

要替换字符串中的前 N ​​个字符,请指定起始索引 N。

主程序
my_str = 'bobbyhadz.com' n = 5 new_str = 'new_' + my_str[n:] print(new_str) # 👉️ new_hadz.com

我们使用字符串切片来替换字符串的第一个或前 N 个字符。

切片my_str[1:]从索引处的字符开始1,一直到字符串的末尾。

主程序
my_str = 'bobbyhadz.com' print(my_str[1:]) # 👉️ obbyhadz.com

字符串切片的语法是my_str[start:stop:step].

索引start是包含的,而stop索引是排他的(最多,但不包括)。

Python 索引是从零开始的,因此字符串中的第一个字符的索引为0,最后一个字符的索引为-1or len(my_str) - 1

最后一步是使用加法 (+) 运算符来添加替换字符串。

主程序
my_str = 'bobbyhadz.com' new_str = '_' + my_str[1:] print(new_str) # 👉️ _obbyhadz.com

如果您的情况下的替换值不是字符串类型,请使用该类str()
将其转换为字符串。

主程序
my_str = 'bobbyhadz.com' new_str = str(123) + my_str[1:] print(new_str) # 👉️ 123obbyhadz.com

加法 (+) 运算符左右两侧的值需要是兼容类型。

或者,您可以使用该str.replace()方法。

使用 replace() 替换字符串中的第一个或前 N 个字符

您还可以使用该str.replace()方法替换字符串中的第一个或前 N 个字符。

主程序
my_str = 'bobbyhadz.com' new_str = my_str.replace('b', '_', 1) print(new_str) # 👉️ _obbyhadz.com

str.replace()方法可以传递count参数 1 以仅替换字符串中第一次出现的子字符串

可以使用相同的方法替换字符串的前 N ​​个字符。

主程序
my_str = 'bobbyhadz.com' new_str = my_str.replace('bob', '___', 1) print(new_str) # 👉️ ___byhadz.com

str.replace
方法返回字符串的副本,其中所有出现的子字符串都被提供的替换项替换

该方法采用以下参数:

姓名 描述
老的 字符串中我们要替换的子串
新的 每次出现的替换old
数数 count只替换第一次出现的(可选)

该方法不会更改原始字符串。字符串在 Python 中是不可变的。

0如果不知道值,也可以选择索引处的字符。

主程序
my_str = 'bobbyhadz.com' new_str = my_str.replace(my_str[0], '_', 1) print(new_str) # 👉️ _obbyhadz.com
将参数设置count1意味着我们将只替换字符串中第一次出现的子字符串。

要使用此方法替换前 N 个字符,请使用字符串切片。

主程序
my_str = 'bobbyhadz.com' n = 3 new_str = my_str.replace(my_str[:n], '___', 1) print(new_str) # 👉️ ___byhadz.com

切片my_str[:n]从 index 开始0,一直到 index ,但不包括 index n

使用 re.sub() 替换字符串中的第一个或前 N 个字符

或者,您可以使用该re.sub()方法。

count参数设置为 1 时,该re.sub()方法仅替换字符串中第一次出现的子字符串。

主程序
import re my_str = 'bobbyhadz.com' new_str = re.sub('b', '_', my_str, 1) print(new_str) # 👉️ _obbyhadz.com

re.sub()方法可以选择与正则表达式一起使用。

如果您需要替换字符串中的前 N ​​个字符,同样的方法也适用。

主程序
import re my_str = 'bobbyhadz.com' new_str = re.sub('bob', '___', my_str, 1) print(new_str) # 👉️ ___byhadz.com

re.sub方法返回一个新字符串该字符串是通过用提供的替换替换模式的出现而获得的。

如果未找到模式,则按原样返回字符串。

我们传递给该方法的第一个参数re.sub()是我们要在字符串中匹配的模式,第二个参数是匹配项的替换。

最后一个参数是count– 要替换​​的模式出现的最大次数。

0如果不知道其值,也可以选择索引处的字符。

主程序
import re my_str = 'bobbyhadz.com' new_str = re.sub(my_str[0], '_', my_str, 1) print(new_str) # 👉️ _obbyhadz.com

或者,您可以使用该类list()

使用 list() 替换字符串中的第一个或前 N 个字符

这是一个三步过程:

  1. 使用该类list()将字符串转换为字符列表。
  2. 更新列表中第一个元素的值。
  3. 使用该str.join()方法将列表连接成一个字符串。
主程序
my_str = 'bobbyhadz.com' list_of_chars = list(my_str) # 👇️ ['b', 'o', 'b', 'b', 'y', 'h', 'a', 'd', 'z', '.', 'c', 'o', 'm'] print(list_of_chars) list_of_chars[0] = '_' new_str = ''.join(list_of_chars) print(new_str) # 👉️ _obbyhadz.com

我们首先使用该类list()将字符串转换为字符列表。

与字符串相反,列表是可变的,因此我们可以直接更新特定索引处的列表元素的值。

最后一步是使用该str.join()方法将列表连接成一个字符串。

str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联

调用该方法的字符串用作元素之间的分隔符。

我们使用空字符串分隔符将列表连接成一个没有分隔符的字符串。

可以使用相同的方法来替换字符串的前 N ​​个字符。

主程序
my_str = 'bobbyhadz.com' list_of_chars = list(my_str) # 👇️ ['b', 'o', 'b', 'b', 'y', 'h', 'a', 'd', 'z', '.', 'c', 'o', 'm'] print(list_of_chars) n = 3 list_of_chars[:n] = '___' new_str = ''.join(list_of_chars) print(new_str) # 👉️ _obbyhadz.com

切片list_of_chars[:n]从 index 开始0,一直到 index ,但不包括 index n