如何检查列表中的元素是否为数字?
我该如何检查下面这个列表的第一个元素是否是一个数字(可以使用某种正则表达式)在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] )