【问题标题】:Convert list with several data types (strings, NULL values and ints) into list of floats将具有多种数据类型(字符串、NULL 值和整数)的列表转换为浮点数列表
【发布时间】:2020-06-16 09:20:26
【问题描述】:

有一个此类列表的列表:[NULL, NULL, NULL, '3', NULL, 0.0, 0, NULL, 0, NULL, 0, NULL, '2', '5']。有时我在列表中得到不同顺序的值,使用切片或索引不是一个好主意。无法将其转换为浮点列表:

for d in attrs:
        try:
            d = float(d)
        except (ValueError, TypeError):
            pass

我需要让这个列表中的所有字符串或整数都是浮点数,并保持 NULL 不变......

[NULL, NULL, NULL, 3.0, NULL, 0.0, 0.0, NULL, 0.0, NULL, 0.0, NULL, 2.0, 5.0]

我该怎么做?

【问题讨论】:

    标签: python-3.x type-conversion


    【解决方案1】:

    为了使更改反映在原始数组中,我们将新创建的列表 b 的内容复制到 a。

    b = []
    
    for each in a:
       try:
          b.append(float(each))
       except Exception as e:
          b.append(each)
    a = list(b)
    

    【讨论】:

    • 这里是你的 attrs(原始列表)
    • 请在您的答案中添加一些解释,以便其他人可以从中学习
    • 谢谢@Subrahmanyam Penamakuri,这是相当优雅的解决方案......但我也想寻求解释。我们在这里需要什么 a = list(b)?
    • 为了使更改反映在原始数组中,我们将新创建的列表 b 的内容复制到 a。
    猜你喜欢
    • 2018-12-24
    • 2013-08-11
    • 1970-01-01
    • 2021-12-22
    • 2015-11-25
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多