python将列表中的字符串转换为整数和浮点数

时间:2018-01-25 11:05:40

标签: python string list int

如果我有以下列表:

lst = ['3', '7', 'foo', '2.6', 'bar', '8.9']

如何将所有可能的项目转换为int或者浮点数,以获得

lst = [3, 7, 'foo', 2.6, 'bar', 8.9]

提前感谢。

2 个答案:

答案 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]