【发布时间】:2011-10-26 14:03:24
【问题描述】:
对 Python 非常陌生,并且有非常简单的问题。我想从字符串中修剪最后 3 个字符。这样做的有效方法是什么?
示例 I am going 变为 I am go
【问题讨论】:
对 Python 非常陌生,并且有非常简单的问题。我想从字符串中修剪最后 3 个字符。这样做的有效方法是什么?
示例 I am going 变为 I am go
【问题讨论】:
>>> x = 'I am going'
>>> x[:-3]
'I am go'
【讨论】:
你可以使用new_str = old_str[:-3],即从头到尾三个字符。
【讨论】:
您可以在字符串名称后添加 [:-3]。这将为您提供一个字符串,其中包含从开始到最后一个字符的第三个字符。或者,如果您想删除前 3 个字符,您可以使用 [3:]。同样,[3:-3] 会给你一个字符串,其中前 3 个字符被删除,最后 3 个字符被删除。
【讨论】:
如果只是字符数,切片听起来是最合适的用例;但是,如果您知道要从字符串中修剪的实际字符串,则可以执行 rstrip
x = 'I am going'
>>> x.rstrip('ing')
'I am go'
>>> x.rstrip('noMatch')
'I am going'
更新
抱歉误导,但这些示例具有误导性,rstrip 的参数不是作为有序字符串处理,而是作为无序字符集处理。
所有这些都是等价的
>>> x.rstrip('ing')
'I am go'
>>> x.rstrip('gni')
'I am go'
>>> x.rstrip('ngi')
'I am go'
>>> x.rstrip('nig')
'I am go'
>>> x.rstrip('gin')
'I am go'
更新 2
如果在寻求后缀和前缀剥离之后,现在有专门的内置支持来支持这些操作。 https://www.python.org/dev/peps/pep-0616/#remove-multiple-copies-of-a-prefix
【讨论】: