繁体   English   中英

python将列表中的字符串转换为int和float

[英]python converting strings in list to ints and floats

如果我有以下列表:

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

我将如何将所有可能的项目相应地转换为int或float以获得

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

提前致谢。

遍历每个项目并尝试进行转换。 如果转换失败,则说明它不可转换。

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]

尝试这样的事情:

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM