Python:str.split()删除尾随数字

时间:2019-05-24 11:53:41

标签: python python-3.x

有人可以向我解释Python 3.7和Ipython中的这种行为吗?

'asdf1 001.csv'.strip('001.csv')
Out[6]: 'asdf1 '
'asdf1 001.csv'.strip(' 001.csv')
Out[7]: 'asdf'

关注最后一个数字(1

3 个答案:

答案 0 :(得分:2)

它遵循documentation中概述的逻辑:

  

chars参数不是前缀或后缀;而是删除了其值的所有组合:

还有:

  

最外面的前导和尾随chars参数值从字符串中去除。从前端删除字符,直到到达不包含在char字符集中的字符串字符。

它还提供了一个示例,可以帮助您理解行为:

'www.example.com'.strip('cmowz.')
>'example'

答案 1 :(得分:1)

从下面提供的文档开始-条带从开头和结尾以任何顺序删除括号中提供的所有字符,直到到达其他字符为止。在第一种情况下,没有空间,因此它停止在太空中移除;在第二种情况下,它移除了空间,并且在集合中也跟随有1。

文档从这里: https://docs.python.org/3.7/library/stdtypes.html?highlight=strip#str.strip

str.strip([chars])
Return a copy of the string with the leading and trailing characters removed. The chars argument is a string specifying the set of characters to be removed. If omitted or None, the chars argument defaults to removing whitespace. The chars argument is not a prefix or suffix; rather, all combinations of its values are stripped:

>>>
>>> '   spacious   '.strip()
'spacious'
>>> 'www.example.com'.strip('cmowz.')
'example'
The outermost leading and trailing chars argument values are stripped from the string. Characters are removed from the leading end until reaching a string character that is not contained in the set of characters in chars. A similar action takes place on the trailing end. For example:

>>>
>>> comment_string = '#....... Section 3.2.1 Issue #32 .......'
>>> comment_string.strip('.#! ')
'Section 3.2.1 Issue #32'

答案 2 :(得分:0)

Python str.rstrip不会删除字符串' 001.csv',它会从结尾删除' 001.csv'中包含的每个字符,直到字符串以另一个字符结束。因此,在您的第一个示例中,'001.csv'不包含空格,并且该功能是通过'asdf1 '完成的。在第二个示例中,rstrip在删除空格后不会停止,因为' 001.csv'仍然包含'1'