python中如何只提取数字

python中如何只提取数字

作者:William Gu发布时间:2026-01-07阅读时长:0 分钟阅读次数:5

用户关注问题

Q
在Python中如何从字符串中获取所有数字?

我有一个包含字母和数字的字符串,想要提取出所有数字,应该怎么做?

A

使用正则表达式提取字符串中的数字

可以借助Python的re模块,通过正则表达式\d+匹配字符串中的数字。示例代码:

import re
text = 'abc123def456'
numbers = re.findall(r'\d+', text)
print(numbers)  # 输出:['123', '456']
```这段代码会提取出所有连续的数字序列,并以列表形式返回。
Q
如何将字符串中的数字转换成整数列表?

提取出字符串中的数字后,我想要将它们转换为整数,该怎么操作?

A

将提取的数字字符串转换为整数列表

在使用re.findall提取数字之后,可以利用列表推导式将这些字符串数字转换为整数。示例如下:

import re
text = 'order12item4price56'
numbers_str = re.findall(r'\d+', text)
numbers_int = [int(num) for num in numbers_str]
print(numbers_int)  # 输出:[12, 4, 56]
```这样,您就得到了由整数构成的列表,方便后续计算或处理。
Q
有没有其他方法在Python里提取字符串中的数字?

除了正则表达式,有没有更简便或者不同的方法提取字符串里的数字?

A

利用字符串方法和过滤函数提取数字

可以使用Python中的字符串方法结合过滤函数来获得数字。例如:

text = 'price: 123 dollars'
numbers = ''.join(filter(str.isdigit, text))
print(numbers)  # 输出:'123'

这种方法适合提取字符串中所有数字字符组成的连续数字。但如果数字之间有间隔,这方法不太适用。