你可以使用str.translate
,例如
>>> "($12,990)".translate(str.maketrans({',': '', '$': '', '(': '-', ')': ''}))
'-12990'
正如評論由@AdamSmith說,你也可以利用的str.maketrans
的(全)三個參數的形式:
>>> translationtable = str.maketrans("(", "-", ",$)")
>>> "($12,990)".translate(translationtable)
'-12990'
如果您正在使用python-2。 x中的str.translate
功能和string.maketrans
函數可用於:
>>> import string
>>> translationtable = string.maketrans('(', '-')
>>> "($12,990)".translate(translationtable, ',$)')
'-12990'
或與統一碼對Python的2.x的,你需要一個Unicode的順序爲Unicode-序/字符串或無:
>>> unicode_translation_table = {ord(u','): None, ord(u'$'): None, ord(u'('): ord(u'-'), ord(u')'): None}
>>> u"($12,990)".translate(unicode_translation_table)
u'-12990'
是'與string.replace( 「(」,「 - 「)'錯字?這條線不會刪除一個字符... – MSeifert
@ MSeifert這是Excel格式的負數將括號括起來 –
[This answer](https://stackoverflow.com/a/15448887/223424)最簡潔,但整個線程非常好,並且表明問題並非完全無關緊要。 – 9000