如果我有以下列表:
lst = ['3', '7', 'foo', '2.6', 'bar', '8.9']
如何将所有可能的项目转换为int或者浮点数,以获得
lst = [3, 7, 'foo', 2.6, 'bar', 8.9]
提前感谢。
答案 0 :(得分:7)
遍历每个项目并尝试转换。如果转换失败,那么您就知道它不可转换。
def tryconvert(s):
try:
return int(s)
except ValueError:
try:
return float(s)
except ValueError:
return s
lst = ['3', '7', 'foo', '2.6', 'bar', '8.9']
newlst = [tryconvert(i) for i in lst]
print(newlst)
输出:
[3, 7, 'foo', 2.6, 'bar', 8.9]
答案 1 :(得分:0)
尝试这样的事情:
lst = ['3', '7', 'foo', '2.6', 'bar', '8.9']
for j,i in enumerate(lst):
if i.isdigit():
lst[j]=int(i)
elif '.' in i:
lst[j]=float(i)
输出:
[3, 7, 'foo', 2.6, 'bar', 8.9]