首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python -检查字典中的所有键值对并将其转换为int或float

Python -检查字典中的所有键值对并将其转换为int或float
EN

Stack Overflow用户
提问于 2021-04-30 09:24:33
回答 5查看 56关注 0票数 0

假设我有这样一个字典:

代码语言:javascript
运行
复制
[{'Chr': 'chrX', 'Start': '107844640', 'End': '107844640'}]

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

我想检查所有的键值,并且仅当字符串包含数字时才将strings转换为int or float'10.020'应为float'10.020abc'应保留为string,“123”应为int

这是预期的结果:

代码语言:javascript
运行
复制
[{'Chr': 'chrX', 'Start': 107844640, 'End': 107844640}]

我在JavaScript中用Number()做了类似的事情。

有没有什么方法可以做到这一点呢?

EN

Stack Overflow用户

发布于 2021-04-30 09:48:31

已经有一些类似的答案,但这可以在不改变原始输入的情况下使用列表理解。

代码语言:javascript
运行
复制
def convert_value(value):
    try:
        v_float = float(value)
        if v_float.is_integer():
            return int(v_float)
        else:
            return v_float
    except ValueError:
        return value



input_l = [{'Chr': 'chrX', 'Start': '107844640', 'End': '107844640'},
           {'Chr': '126chrX', 'Start': '0.50', 'End': '1'}]
output_l = [{k: convert_value(v) for k,v in doc.items()} for doc in input_l]
票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67327043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档