2016-11-17 64 views
-1

我試圖從字符串'Rhode Island[edit]'提取州名。爲什麼分割和剝離給python不同的輸出?

當我試圖.split('[[]').str[0],我得到了正確的結果「羅得島」。 然而,當我試圖.rstrip('[edit]'),我得到了錯誤的結果「羅得Islan」。

我有困惑,爲什麼左括號前面的字符「d」,當我用rstrip功能也被刪除了。

+2

參數爲'rstrip()可以'是「*被去除指定一組字符的字符串。*」。閱讀文檔:。https://docs.python.org/3/library/stdtypes.html?highlight=rstrip#str.rstrip – cdarke

+0

' '羅德島[編輯]' 分裂( '[]')海峽[ 0]'會產生'AttributeError';請驗證你的問題的一部分。 –

回答

1

S.rstrip([chars]) - >字符串或Unicode

返回字符串S的尾隨空格去掉一個副本。 如果給出字符而不是無,請刪除字符中的字符。 如果字符是unicode,S將被轉換你的情況剝離

的字符= [ '[', 'E', 'd', 'I', 'T', ']'] 之前爲Unicode其中包含「d」,通過給定的字符形成有向前後串是d[edit]

嘗試正則表達式

import re 
re.compile(r'\[edit\]$').sub('','Rhode Island[edit]') 
+0

使用're'是最好的方法,因爲它揭示了這個意圖。 –

3

rstrip沒有做你想要的東西,它會從字符串的結尾指定的所有字符,所以它刪除「[」,「E」,「d」,「我」,「T」和' ]」。你需要的是分裂的「[」然後在第一個元素:'Rhode Island[edit]'.split('[')[0]

相關問題