2017-04-04 57 views
-1

我可以去除NUMERICS而不是字母字符:如何使用文字strip()函數?

>>> text 
'132abcd13232111' 

>>> text.strip('123') 
'abcd' 

爲什麼下面不工作?

>>> text.strip('abcd') 
'132abcd13232111' 
+0

請不要問,很容易被[閱讀文檔]解決問題(https://docs.python.org/3/library/stdtypes.html#字符串的方法)。預計你會做一些研究,並且查看一些你不明白的方法的文檔是*最低*。使用StackOverflow應該是最後的手段。 –

+0

我的不好。我瀏覽了文檔,因此我甚至跳過了提及前導/尾隨字符的部分。我會聽從你的建議。謝謝。 – Vic

回答

3

原因很簡單,並表示在documentation of 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. 

'abcd'既不領先,也不所以它是不可剝離的字符串'132abcd13232111'在尾隨。

+0

@nfnneil因爲字符串開頭和結尾的數字都與作爲參數提供給'strip'的字符組匹配。 –

1

只是幾個例子添加到Jim's answer,根據.strip()文檔:

  • 返回字符串與領先尾隨字符刪除副本。
  • chars參數是一個字符串,指定要刪除的字符集。
  • 如果省略或無,chars參數默認爲刪除空格。
  • chars參數不是前綴或後綴;相反,其值的所有組合都被剝離。

所以,如果它是一個數字或沒有,因爲你預期你的第二個代碼沒有工作的主要原因沒關係,是因爲「ABCD」一詞位於字符串中間。


例1:

s = '132abcd13232111' 
print(s.strip('123')) 
print(s.strip('abcd')) 

輸出:

abcd 
132abcd13232111 

例2:

t = 'abcd12312313abcd' 
print(t.strip('123')) 
print(t.strip('abcd')) 

輸出:

abcd12312313abcd 
12312313 
+0

非常非常清楚的例子。謝謝。 – Vic

相關問題