Python 字符串 removeprefix() 方法

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 s

2. 能否使用 lstrip() 替代 removeprefix() 呢?

不能。这是因为 lstrip() 会删除所有出现在开头的字符(无序),而 removeprefix() 则严格匹配完整前缀。比如:

s = 'testtest_test'
print(s.lstrip('test'))          # 输出 : 'test'(删除了开头所有的 't','e','s' 字符,直到遇到 '' 才停止)
print(s.removeprefix('test'))    # 输出 : 'test_test'(严格匹配并仅删除一次完整的前缀 'test')

上一篇: splitlines()

下一篇: removesuffix()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号