Python条带方法

Raj*_*mar 9 python

今天在python终端,我试过了

a = "serviceCheck_postmaster"
a.strip("serviceCheck_")
Run Code Online (Sandbox Code Playgroud)

但"postmaster"我没有得到,而是得到了"postmast".

什么可能导致这个?我怎样才能获得"postmaster"输出?

Mar*_*ers 19

你是误会了什么.strip() 呢.它会删除您传递的字符串中的任何字符.从str.strip()文档:

的字符参数是字符串指定一组待删除的字符.

强调我的; 这个词set至关重要.

因为chars作为一组处理,.strip()将删除所有s,e,r,v,i,c,C,h,k并_从你的输入字符串的开始和结束字符.所以输入字符串末尾的e和r字符也被删除了; 这些字符是集合的一部分.

要从开头或结尾删除字符串,请改为使用切片:

if a.startswith('serviceCheck_'):
    a = a[len('serviceCheck_'):]
Run Code Online (Sandbox Code Playgroud)

  • 为了澄清这一点,如果不清楚:Python,当查看字符串的结尾时,询问字符集中的"是''r'``"serviceCheck_"`?是! 删除它!"字符集中的''e'``"serviceCheck_"`` 是! 删除它!"字符集""serviceCheck_"中是不是"?" 没有!停止修剪此字符串末尾的内容. (3认同)
  • @ClockSlave:因为`p`,`o`和`t`不在'serviceCheck_`这个词中.剥离从开始和结束发生,而不是从中间发生. (2认同)

Har*_*pal 6

Martijn回答的另一种方法是使用 str.replace()

>>> a = "serviceCheck_postmaster"
>>> a.replace('serviceCheck_','')
'postmaster'
Run Code Online (Sandbox Code Playgroud)