如何在python中检查列表的第一个元素(下面)是否为数字(使用某种正则表达式):
temp = ['1', 'abc', 'XYZ', 'test', '1']
非常感谢。
答案 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])
当然,如果你想要浮点数,底片,科学记数法等,这一切都会(稍微)变得更复杂。我会把它作为练习留给提问者:)