如何将不稳定的字符串列表转换为int

发布于 2021-01-29 18:02:42

在Python中,我想转换一个字符串列表:

l = ['sam','1','dad','21']

并将整数转换为整数类型,如下所示:

t = ['sam',1,'dad',21]

我试过了:

t = [map(int, x) for x in l]

但显示错误。

如何将列表中的所有 不稳定 字符串转换为int,而将其他元素保留为字符串?

我的清单可能是多维的。一种适用于通用列表的方法将更可取:

l=[['aa','2'],['bb','3']]

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我将使用自定义函数:

    def try_int(x):
        try:
            return int(x)
        except ValueError:
            return x
    

    例:

    >>> [try_int(x) for x in  ['sam', '1', 'dad', '21']]
    ['sam', 1, 'dad', 21]
    

    编辑: 如果您需要将以上内容应用于列表列表, 为什么在构建嵌套列表时没有将这些字符串转换为int?

    无论如何,如果需要,如何迭代此类嵌套列表并应用上述方法只是一个选择问题。

    一种方法是:

    >>> list_of_lists = [['aa', '2'], ['bb', '3']]
    >>> [[try_int(x) for x in lst] for lst in list_of_lists]
    [['aa', 2], ['bb', 3]]
    

    您可以将其重新分配给list_of_lists

    >>> list_of_lists = [[try_int(x) for x in lst] for lst in list_of_lists]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看