有没有更好的方法从 python 3 中的字符串中提取数字

Is there a better way to extract numbers from a string in python 3

我有“V70N-HN”形式的字符串,我只需要取出 70。第一个字符可以是任意数量的字母,或者 none。最后的角色也是如此。我过去使用过这个的变体,但在没有 'join' 和 'list' 的情况下,它在 python 2 中看起来更干净:

>>> a = "V70N-HN"
>>> i = int(''.join(list(filter(lambda x: x.isdigit(), a))))
>>> i
70

无论如何,这已经不是很 pythonic 了。是否有更简单易懂的方法来达到同样的效果?

这是@Barmar 建议的进行正则表达式搜索的一种方法:

>>> import re
>>> int(re.search("\d+", "V70N-HN")[0])
70

没有正则表达式:

>>> int(''.join(filter(str.isdigit, a)))
70

这是使用列表理解的另一种方式:

>>> int(''.join([i for i in a if i.isdigit()]))
70