📅  最后修改于: 2023-12-03 15:34:09.963000             🧑  作者: Mango
在Python中,我们经常需要从字符串中提取数字。这篇文章将介绍几种方法来达到这个目标。
使用正则表达式可以方便地从字符串中提取数字。下面是一个例子:
import re
s = "I have 3 apples and 2 bananas"
pattern = r"\d+"
numbers = re.findall(pattern, s)
print(numbers)
输出:
['3', '2']
解释:\d
匹配任意数字,+
表示匹配一个或多个数字。
isdigit()方法可以判断一个字符串是否只包含数字字符,例如:
s = "1234"
if s.isdigit():
n = int(s)
print(n)
else:
print("Not a number")
输出:
1234
解释:isdigit()返回True,字符串可以转换为整数。
如果字符串中只包含数字,我们可以使用split()方法将它们分割成一个列表,例如:
s = "1 2 3 4 5"
numbers = s.split()
print(numbers)
输出:
['1', '2', '3', '4', '5']
解释:split()默认以空格分割字符串。
如果字符串中包含多个数字,我们可以使用列表推导式来提取它们,例如:
s = "1, 2 apples, 3 pears, 4 bananas"
numbers = [int(n) for n in s.split() if n.isdigit()]
print(numbers)
输出:
[1, 3, 4]
解释:列表推导式遍历由split()方法拆分的字符串列表,只选择由isdigit()方法识别为数字的元素,然后将它们转换为整数。
以上就是几种从字符串中提取数字的方法。根据不同的场景选择不同的方法可以让代码更加简洁和有效。