首页 > 解决方案 > Python - 检查字典中的所有键值对并转换为 int 或 float

问题描述

假设我有一个这样的字典:

[{'Chr': 'chrX', 'Start': '107844640', 'End': '107844640'}]

几乎所有的键值都是字符串,不是全部,而是几乎(我不知道为什么)。

我想检查所有键值并仅在字符串包含数字时才将其转换strings为。应该是 a ,应该保持 a和 '123' 应该是 a 。int or float'10.020'float'10.020abc'stringint

这是期望的结果:

[{'Chr': 'chrX', 'Start': 107844640, 'End': 107844640}]

我在 JavaScript 中用Number().

有什么pythonic方法可以实现吗?

标签: python

解决方案


创建一个很好的小函数来解析键/值:

def try_convert(x):
    try:
        return int(x)
    except ValueError:
        pass
    try:
        return float(x)
    except ValueError:
        return x

现在使用它!对于一些字典d

d = {try_convert(k): try_convert(v) for k, v in d.items()}

推荐阅读