如何在Python中从字符串中提取数字?

如果只需要正整数,则可以按以下方式拆分和搜索数字:

>>> str = "h3110 23 cat 444.4 rabbit 11 2 dog"
>>> [int(s) for s in str.split() if s.isdigit()]
[23, 11, 2]

对于所有其他情况,使用正则表达式将是最佳选择。同样,在提取值时,最好将它们从字符串转换为整数。例如:

>>> import re
>>> [float(s) for s in re.findall(r'-?\d+\.?\d*', 'he33.45llo -42 I\'m a 32 string 30')]
[33.45, -42.0, 32.0, 30.0]