当我们需要从Python字符串中提取数字时,有多种方法可供选择。下面简要介绍了一些最流行的提取数字方法。
1. 使用正则表达式提取字符串中的数字
使用正则表达式来提取数字是最常见的方法之一。我们可以通过使用re模块中的findall()函数来实现这一目的。函数返回一个列表,其中包含所有与模式匹配的字符串。
import re
text = "Hello, 123456 World 7890"
numbers = re.findall(r'\d+', text)
print(numbers)
输出结果如下:
['123456', '7890']
在这个示例中,\d+将匹配一个或多个数字。这意味着数字可以在字符串中的任何位置出现,并且可以由任何字符分隔。
2. 使用isdigit()函数检查字符串中的字符是否为数字
isdigit()函数用于检查字符串中每个字符是否都是阿拉伯数字。如果字符串中所有字符都是数字,则该函数返回True,否则返回False。
text = "1234"
if text.isdigit():
print("All characters are digits")
else:
print("Some characters are not digits")
输出结果如下:
All characters are digits
在这个示例中,我们用isdigit()函数检查字符串是否只包含数字。由于该字符串中的所有字符都是数字,因此该函数返回True,并打印“All characters are digits”。
示例一:计算字符串中数字的总和
下面的示例将演示如何提取字符串中的所有数字,并计算它们的总和。为此,我们将使用正则表达式和Python的内置函数sum()。
import re
text = "The subtotal is 1234.56, and the tax is 78.90"
numbers = [float(i) for i in re.findall(r'\d+\.\d+', text)]
sum_of_numbers = sum(numbers)
print("The total is:", sum_of_numbers)
输出结果如下:
The total is: 1313.46
在这个示例中,我们首先使用re.findall()从字符串中提取所有的数字,然后使用[float(i) for i in numbers]将它们转换为浮点数列表。最后,我们使用Python的sum()函数计算数字的总和。
示例二:从文件名中提取数字
下面的示例将演示如何从含有数字的文件名中提取数字。在这个示例中,我们将考虑一个名为“file001.jpg”的文件名称,该名称包含带零填充的数字“001”。
import re
filename = "file001.jpg"
numbers = re.findall(r'\d+', filename)
number = int(numbers[0])
print("The number in the filename is:", number)
输出结果如下:
The number in the filename is: 1
在这个示例中,我们使用re.findall()函数来提取文件名中的数字。结果是一个字符串列表,其中包含我们想要的数字“001”。因为列表只包含一个元素,所以我们可以使用[int(i) for i in numbers][0]将它转换为整数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python3中字符串中的数字提取方法 - Python技术站