你可以使用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