我有一些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方法的相对优点有什么看法?
https://stackoverflow.com/questions/736043
复制相似问题