如果只需要正整数,则可以按以下方式拆分和搜索数字:
>>> 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]