gpt4 book ai didi

python - 在混合数据类型字典中将 float 转换为 int

转载 作者:行者123 更新时间:2023-11-28 22:24:07 25 4
gpt4 key购买 nike

有点卡在可能很容易解决的问题上,但我发现的所有示例都在谈论统一的键:值对。

我想要实现的是:

我有一个包含混合值(字符串和 float )的字典,所有 float 都应该转换为 int,否则保留字符串。

例子:

d = {"key1":"something","key2":200.0, "key3":"another string", "key4":2017.0}

应该变成:

{"key1":"something","key2":200, "key3":"another string", "key4":2017}

我尝试了一些类似的变体,但没有成功

d = {k: int(v) if float(v) else v for k, v in d.items()}

实现此目标的最佳方法是什么?

最佳答案

您的 if float(v) 不会检查 v 是否为 float :它只检查转换结果的真实性v 为 float 是 True。但是,如果 float(v) 引发异常,则该异常不会被捕获。

您可以使用isinstance(..) 来检查对象是否具有特定类型:

{k: int(v) if <b>isinstance(v, float)</b> else v for k, v in d.items()}

这将产生一个像这样的字典:

>>> {k: int(v) if isinstance(v, float) else v for k, v in d.items()}
{'key2': 200, 'key4': 2017, 'key1': 'something', 'key3': 'another string'}

关于python - 在混合数据类型字典中将 float 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46624410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com