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

时间:2010-07-12 01:07:27

标签: python

如何在python中检查列表的第一个元素(下面)是否为数字(使用某种正则表达式):

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

非常感谢。

3 个答案:

答案 0 :(得分:11)

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] )

答案 1 :(得分:4)

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

if temp[0].isdigit(): print "It's a number"

答案 2 :(得分:1)

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

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

否则,只需尝试解析为int并捕获异常:

>>> int(temp[0])

当然,如果你想要浮点数,底片,科学记数法等,这一切都会(稍微)变得更复杂。我会把它作为练习留给提问者:)