我有一些Python代码,它运行在字符串列表中,如果可能的话,将它们转换为整数或浮点数。对整数做这个很容易
if element.isdigit():
newelement = int(element)
浮点数比较困难。现在我正在使用partition('.')
来分割字符串,并检查以确保一侧或两侧都是数字。
partition = element.partition('.')
if (partition[0].isdigit() and partition[1] == '.' and partition[2].isdigit())
or (partition[0] == '' and partition[1] == '.' and partition[2].isdigit())
or (partition[0].isdigit() and partition[1] == '.' and partition[2] == ''):
newelement = float(element)
这是可行的,但显然if语句有点像熊。我考虑的另一个解决方案是将转换包装在try/catch块中,看看它是否成功,如this question所述。
有人有其他想法吗?对分区和try/catch方法的相对优点的看法?
只有当数字串中有一个或没有“.”时,它才会返回
true
。将返回
false
将返回
false
检查float的Python方法:
别被藏在浮船上的妖精咬了!做单元测试!
什么是浮子,什么不是浮子可能会让你吃惊:
我会用。。
…很简单,而且很有效
另一个选项是正则表达式:
相关问题 更多 >
编程相关推荐