9

对 Python 非常陌生,并且有非常简单的问题。我想从字符串中修剪最后 3 个字符。这样做的有效方法是什么?

示例 I am going变为I am go

4

4 回答 4

14

您可以使用new_str = old_str[:-3], 表示从开头到结尾之前的三个字符。

于 2011-08-13T22:12:18.137 回答
5

如果只是字符数,那么切片听起来像是您所追求的最合适的用例;但是,如果您知道要从字符串中修剪的实际字符串,则可以执行rstrip

x = 'I am going'
>>> x.rstrip('ing')
'I am go'
>>> x.rstrip('noMatch')
'I am going'

更新

很抱歉误导,但这些示例具有误导性,参数 torstrip不是作为有序字符串处理,而是作为无序字符集处理。

所有这些都是等价的

>>> 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

于 2017-10-10T23:44:49.550 回答
2

使用字符串切片

>>> x = 'I am going'
>>> x[:-3]
'I am go'
于 2011-08-13T22:12:01.350 回答
1

您可以在字符串名称后添加 [:-3]。这将为您提供一个字符串,其中包含从开始到最后一个字符的第三个字符。或者,如果您想删除前 3 个字符,您可以使用 [3:]。同样, [3:-3] 会给你一个字符串,其中前 3 个字符被删除,最后 3 个字符被删除。

于 2011-08-13T22:13:17.953 回答