不使用正则表达式从字符串中获取整数的最佳方法

Tri*_*tan 0 python string int

我想从一个字符串(第三个)得到一些整数.不使用正则表达式优先.

我看到了很多东西.

我的字符串:

xp = '93% (9774/10500)'
Run Code Online (Sandbox Code Playgroud)

所以我希望代码返回一个包含字符串整数的列表.所以期望的输出将是:[93, 9774, 10500]

像这样的东西不起作用:

>>> new = [int(s) for s in xp.split() if s.isdigit()]
>>> print new
[]
>>> int(filter(str.isdigit, xp))
93977410500
Run Code Online (Sandbox Code Playgroud)

pol*_*lku 7

既然问题是你必须拆分不同的字符,你可以先用空格替换不是数字的所有内容然后拆分,单行将是:

 xp = '93% (9774/10500)'
 ''.join([ x if x.isdigit() else ' ' for x in xp ]).split() # ['93', '9774', '10500']
Run Code Online (Sandbox Code Playgroud)

  • 您甚至可以删除列表(即`[`..`]`)并将生成器表达式直接传递给`join()`. (2认同)