在 Python 中替换字符串中的最后一个字符

目录

Replace the last character in a String in Python

  1. 在 Python 中替换字符串中的最后一个字符
  2. 使用 re.sub() 替换字符串中的最后一个字符
  3. 使用 list() 替换字符串中的最后一个字符
  4. 在 Python 中替换字符串中的最后 N 个字符
  5. 使用 str.rsplit() 替换字符串中的最后 N 个字符

在 Python 中替换字符串中的最后一个字符

使用字符串切片替换字符串中的最后一个字符,例如
new_str = my_str[:-1] + '_'. 字符串的切片排除了最后一个字符,因此我们可以使用加法 (+) 运算符附加替换字符。

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

切片my_str[:-1]从索引开始,0一直到但不包括字符串的最后一个字符。

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

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

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

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

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

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

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

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

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

使用 re.sub() 替换字符串中的最后一个字符

使用该re.sub()方法替换字符串中的最后一个字符,例如
new_str = re.sub(r'm$', 'new', my_str).

re.sub()方法可以传递一个仅在字符串末尾匹配的模式,并将用提供的替换替换最后一个字符。

主程序
import re my_str = 'bobbyhadz.com' new_str = re.sub(r'm$', '_', my_str) print(new_str) # 👉️ bobbyhadz.co_

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

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

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

美元符号$匹配字符串的末尾,因此指定的字符只有在字符串末尾时才会被替换。

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

使用 list() 替换字符串中的最后一个字符

要替换字符串中的最后一个字符:

  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[-1] = '_' new_str = ''.join(list_of_chars) print(new_str) # 👉️ bobbyhadz.co_

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

主程序
my_str = 'bobbyhadz.com' # 👇️ ['b', 'o', 'b', 'b', 'y', 'h', 'a', 'd', 'z', '.', 'c', 'o', 'm'] print(list(my_str))

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

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

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

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

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

在 Python 中替换字符串中的最后 N 个字符

要替换字符串中的最后 N 个字符:

  1. 使用字符串切片在最后 N 个字符之前获取字符串的一部分。
  2. 使用加法 (+) 运算符将替换字符串追加到结果中。
主程序
my_str = 'bobbyhadz.com' n = 4 new_str = my_str[:-n] + '-new' print(new_str) # 👉️ bobbyhadz-new

我们使用字符串切片在最后 N 个字符之前获取字符串的一部分。

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

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

切片my_str[:-n]从索引开始,0一直到但不包括字符串中的最后 N 个字符。

我们使用加法 (+) 运算符将替换追加到切片中。

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

主程序
my_str = 'bobbyhadz.com' n = 4 new_str = my_str[:-n] + str(1234) print(new_str) # 👉️ bobbyhadz1234

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

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

使用 str.rsplit() 替换字符串中的最后 N 个字符

要替换字符串中的最后 N 个字符:

  1. 使用该str.rsplit()方法将字符串从右侧拆分一次。
  2. 使用该str.join()方法将列表连接成具有特定替换字符串的字符串。
主程序
my_str = 'bobbyhadz.com' new_str = '-new'.join(my_str.rsplit('.com', 1)) print(new_str) # 👉️ bobbyhadz-new

str.rsplit()和方法的组合str.join()在 Python 中用作从右边开始的单个替换。

str.rsplit
方法使用提供的分隔符作为分隔符字符串返回字符串中的单词列表

主程序
my_str = 'bobby hadz com' print(my_str.rsplit(' ')) # 👉️ ['bobby', 'hadz', 'com'] print(my_str.rsplit(' ', 1)) # 👉️ ['bobby hadz', 'com']

该方法采用以下 2 个参数:

姓名 描述
分隔器 在每次出现分隔符时将字符串拆分为子字符串
最大分裂 最多maxsplit完成拆分,最右边的(可选)

除了从右边分裂,rsplit()表现得像split().

最后一步是使用该str.join()方法将列表连接成一个字符串,并以替换字符串作为分隔符。

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

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