Python removeprefix() 语法
removeprefix() 是 Python 字符串的一个方法,它会删除字符串的前缀(即开头的指定子串),并返回字符串的剩余部分。
语法:
str.removeprefix(prefix)说明:
removeprefix() 方法接收单个参数。
prefix(必选):字符串开头的子串。如果字符串不以该前缀开头,则直接返回原字符串的副本。如果 prefix 参数是空字符串,也会返回原字符串的副本。
注意: removeprefix() 不会修改原字符串,而是返回一个新字符串。
Python removeprefix() 摘要
| 使用频率 | 中 |
|---|---|
| 修改原字符串 | 否 |
| 官方文档 | 查看 |
| 相关方法 | removesuffix()、startswith()、lstrip() |
Python removeprefix() 示例
接下来,我们通过几个简单的例子来讲解 Python removeprefix() 方法是如何使用的。
示例 1:removeprefix() 基本用法
s = 'lvyenet'
result = s.removeprefix('lvye')
print(s)
print(result)运行结果如下。
lvyenet
net分析:
从结果可以看到,removeprefix() 并不会修改原字符串。
示例 2:前缀不存在的情况
s = 'hello world'
print(s.removeprefix('hi'))
print(s.removeprefix('hello'))运行结果如下。
hello world
world分析:
如果字符串不以指定前缀开头(如 'hi'),则直接返回原字符串。如果前缀部分匹配(如 'hello'),则仅删除匹配部分。
示例 3:removeprefix() 严格区分大小写
s = 'PythonIsFun'
print(s.removeprefix('python'))
print(s.removeprefix('Python'))运行结果如下。
PythonIsFun
IsFun分析:
removeprefix() 严格区分大小写。对于 removeprefix() 来说,'python' 和 'Python' 是不一样的。
removeprefix() 和 removesuffix()
removeprefix() 和 removesuffix() 是一对 “好基友” 关系,它们的区别如下。
removeprefix():删除的是字符串的前缀,并返回一个新字符串。removesuffix():删除的是字符串的后缀,并返回一个新字符串。
常见问题
1. 如果想要在 Python 3.9 以下版本使用 removeprefix(),应该怎么办呢?
我们可以手动实现 removeprefix() 的逻辑,比如:
def removeprefix(s, prefix):
return s[len(prefix):] if s.startswith(prefix) else s2. 能否使用 lstrip() 替代 removeprefix() 呢?
不能。这是因为 lstrip() 会删除所有出现在开头的字符(无序),而 removeprefix() 则严格匹配完整前缀。比如:
s = 'testtest_test'
print(s.lstrip('test')) # 输出 : 'test'(删除了开头所有的 't','e','s' 字符,直到遇到 '' 才停止)
print(s.removeprefix('test')) # 输出 : 'test_test'(严格匹配并仅删除一次完整的前缀 'test')