📅  最后修改于: 2023-12-03 15:04:23.851000             🧑  作者: Mango
有时候我们需要从一个字符串中提取数字,这在数据分析和数字处理时是很常见的。Python提供了很多方法来提取数字,下面将介绍几种常用的方法。
使用re模块可以方便地从字符串中提取数字。以下代码使用了re模块的findall()函数,该函数返回字符串中所有匹配正则表达式的子串,包括数字。
import re
text = "a1b2c3d4e5f6g7h8i9"
numbers = re.findall(r'\d+', text)
print(numbers)
这里使用了正则表达式r'\d+',表示匹配任意连续数字,加号表示匹配一个或多个连续数字。上述代码的输出为:
['1', '2', '3', '4', '5', '6', '7', '8', '9']
filter()函数可以用来过滤一个序列中的元素,当函数返回True时,该元素会被保留。isdigit()方法可以判断一个字符串是否全为数字,这里可以将isdigit()作为过滤函数,得到一个仅包含数字的序列。
text = "a1b2c3d4e5f6g7h8i9"
numbers = filter(str.isdigit, text)
print(list(numbers))
该代码的输出与上述正则表达式匹配的代码输出相同:
['1', '2', '3', '4', '5', '6', '7', '8', '9']
isdigit()方法同样可以用于判断一个字符串是否全为数字,利用这一点,可以使用列表推导式来得到仅包含数字的列表。
text = "a1b2c3d4e5f6g7h8i9"
numbers = [char for char in text if char.isdigit()]
print(numbers)
该代码的输出与上述两种方法输出相同:
['1', '2', '3', '4', '5', '6', '7', '8', '9']
以上就是几种常用的从字符串中提取数字的方法,读者可以根据实际需求选择适合自己的方法。