如何检查列表中的元素是否为数字?

4 投票
3 回答
12274 浏览
提问于 2025-04-16 01:08

我该如何检查下面这个列表的第一个元素是否是一个数字(可以使用某种正则表达式)在Python中:

temp = ['1', 'abc', 'XYZ', 'test', '1']

非常感谢。

3 个回答

1

使用正则表达式(因为你问了):

>>> import re
>>> if re.match('\d+', temp[0]): print "it's a number!"

否则,你可以尝试把它解析成整数,然后捕捉可能出现的错误:

>>> int(temp[0])

当然,如果你想处理浮点数、负数、科学计数法等等,这一切就会(稍微)变得复杂一些。我就留给提问的人自己去练习吧 :)

4

如果你只是想要一个简单的正整数,可以使用字符串的 isDigit 方法。

if temp[0].isdigit(): print "It's a number"
13
try:
  i = int(temp[0])
except ValueError:
  print "not an integer\n"

try:
  i = float(temp[0])
except ValueError:
  print "not a number\n"

如果一定要用正则表达式来做的话:

import re
re.match( '^[-+]?(([0-9]+([.][0-9]*)?)|(([0-9]*[.])?[0-9]+))$', temp[0] )

撰写回答