奇怪的Python strip()行为

时间:2015-10-24 18:59:32

标签: python string strip

我不明白为什么strip()函数返回它在下面的方式。我想剥离()Axyx的最后一次出现。我使用rstrip('Axyx')绕过它,但是对于以下内容的解释是什么?

>>>"Abcd Efgh Axyx".strip('Axyx')
'bcd Efgh '

2 个答案:

答案 0 :(得分:4)

传递给strip的字符串被视为一串字符,而不是字符串。因此,strip('Axyx')表示从字符串的任意一端"中删除Axy的出现次数。

如果您确实要删除前缀或后缀,则必须自己编写该逻辑。例如:

s = 'Abcd Efgh Axyx'
if s.endswith('Axyx'):
    s = s[:-len('Axyx')]

答案 1 :(得分:0)

因为strip()返回您提供的字符串的副本,而不提供您作为输入提供的字符。
例如: “12345”.strip('123')返回:'45'。
因此,strip()不会删除单词或其他内容,但会删除您提供的字符串作为输入的所有字符,包括要从中删除的字符串的结尾和开头。