📜  python 从字符串中获取数字 - Python (1)

📅  最后修改于: 2023-12-03 15:34:09.963000             🧑  作者: Mango

Python 从字符串中获取数字

在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()方法

isdigit()方法可以判断一个字符串是否只包含数字字符,例如:

s = "1234"
if s.isdigit():
    n = int(s)
    print(n)
else:
    print("Not a number")

输出:

1234

解释:isdigit()返回True,字符串可以转换为整数。

方法三:使用split()方法

如果字符串中只包含数字,我们可以使用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()方法识别为数字的元素,然后将它们转换为整数。

以上就是几种从字符串中提取数字的方法。根据不同的场景选择不同的方法可以让代码更加简洁和有效。