如何从字符串中提取所有数字?
例如,考虑一个字符串"66,55,66,57"
。我想将每个数字提取到单独的变量中,并执行整数运算。
str.split
来分割字符串并将其转换为整数:>>> string = "66,55,66,57"
>>> numbers = [int(x) for x in string.split(",")]
>>> print numbers
[66, 55, 66, 57]
然后您可以随意使用该列表。例如:
>>> sum(numbers)
244
如果字符串包含其他分隔符或特殊字符,那么之前的方法可能就不再适用了。我建议采用另一种方法:
import re
s = '123 @, 421, 57&as241'
result = re.findall(r'[0-9]+', s)
结果为:['123','421','57','241']
如果您希望将字符串值转换为整数:
result_int = map(int, result)
试试这个:
s = "66,55,66,57"
its = iter(s)
ints = []
while 1:
try:
ints.append(int(''.join(takewhile(str.isdigit, its))))
except ValueError:
break
会给你一个整数列表 ints
。