将字符串转换为整数

DRd*_*Rdr 2 python string

如何将字符串转换为整数并从该更改中删除每个字符.例:

S = "--r10-" 我想要这个: S = 10

这不起作用:

S = "--10-"
int(S)
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 9

您可以使用filter(str.isdigit, s)仅保留那些s数字的字符:

>>> s = "--10-"
>>> int(filter(str.isdigit, s))
10
Run Code Online (Sandbox Code Playgroud)

请注意,这可能会导致包含多个数字的字符串出现意外结果

>>> int(filter(str.isdigit, "12 abc 34"))
1234
Run Code Online (Sandbox Code Playgroud)

或负数

>>> int(filter(str.isdigit, "-10"))
10
Run Code Online (Sandbox Code Playgroud)

编辑:要使unicode对象而不是str对象,请使用

int(filter(unicode.isdigit, u"--10-"))
Run Code Online (Sandbox Code Playgroud)

  • 你也可以使用[`operator.methodcaller("isdigit")`](http://docs.python.org/library/operator.html#operator.methodcaller),这样它就可以同时使用str和unicode. (3认同)