在Python中去除字符串前缀时要避免的常见错误
假设你有一个字符串,你想要去除前缀。例如,你有一个字符串s = "Hello, World!"
,你想要去除前缀"Hello, "
。你可能会尝试使用str.lstrip()
来实现这个目的。
s = "Hello, World!"
s.lstrip("Hello, ") # "World!"
这似乎可以正常工作,但让我们尝试一些更多的例子,以更好地了解发生了什么。
url = "www.google.com"
url.lstrip("www.") # "google.com"
other_url = "www.wikipedia.com"
other_url.lstrip("www.") # "ikipedia.com"
你可能会问,最后一个例子发生了什么?实际上,str.lstrip()
期望的是一个要从字符串中去除的字符列表,而不是一个前缀。因此,当你传递"www."
时,它会从字符串的开头去除字符串"www."
中的所有字符。事实上,这等同于传递"w."
。
所以,str.lstrip()
实际上并不是适合这个任务的正确工具。相反,你应该使用str.removeprefix()
。这个方法被设计用来做你想要的事情 - 从字符串中去除前缀。
url = "www.wikipedia.com"
url.removeprefix("www.") # "wikipedia.com"