Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 提取字符串中的数字_Python_String - Fatal编程技术网

Python 提取字符串中的数字

Python 提取字符串中的数字,python,string,Python,String,如何提取字符串中的所有数字 例如,考虑一个字符串“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] 然后你可

如何提取字符串中的所有数字


例如,考虑一个字符串<代码>“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']

如果需要,可以将字符串值转换为int:

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

中的整数列表您需要为每个数字指定一个显式变量,还是只想对每个整数求和?一组数字行吗(你可以减少)?如果是这样的话,python在所有字符串上都有一个split方法,在该方法中传递一个字符“”,它将返回一个由逗号分隔的值数组