目录
Replace the last character in a String in Python
- 在 Python 中替换字符串中的最后一个字符
- 使用 re.sub() 替换字符串中的最后一个字符
- 使用 list() 替换字符串中的最后一个字符
- 在 Python 中替换字符串中的最后 N 个字符
- 使用 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
,最后一个字符的索引为-1
or 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() 替换字符串中的最后一个字符
要替换字符串中的最后一个字符:
- 使用
list()
该类将字符串转换为字符列表。 - 更新列表中最后一个元素的值。
- 使用该
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 个字符:
- 使用字符串切片在最后 N 个字符之前获取字符串的一部分。
- 使用加法 (+) 运算符将替换字符串追加到结果中。
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 个字符:
- 使用该
str.rsplit()
方法将字符串从右侧拆分一次。 - 使用该
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方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。
调用该方法的字符串用作元素之间的分隔符。