gpt4 book ai didi

python - 检查 float 是否在 Python 的字典键中

转载 作者:行者123 更新时间:2023-12-05 06:19:29 24 4
gpt4 key购买 nike

我有一个像这样的字典 tmp_dic = {'0.0': 'val0', '1': 'val1', 'key3': 'val2'} 。现在在解析文件期间,我想检查例如让我们说 1.0 的浮点值是否在 tmp_dic 键中?我有这样一个简单的逻辑,但似乎有时会返回错误的答案。

str(int(1.0)) in tmp_dic.keys()

在检查键中是否存在数字字符串之前,是否需要检查数字字符串是整数还是 float ?感谢您的提示。

最佳答案

你可以使用:

def gen_float(l):
for f in l:
try:
yield float(f)
except ValueError:
pass
any(v == 1.00 for v in gen_float(tmp_dic.keys()))

输出:

True

将 key 转换为 float 比将检查 float 转换为 int 比转换为字符串更好,例如。如果你的支票 float 是 1.23 这将被转换为 1


或者你可以使用:

1.0 in gen_float(tmp_dic.keys())

正如@HeapOverflow 所暗示的那样


如果在创建 tmp_dict 时尝试将键转换为 float ,这会比在字典中搜索 float 的时间复杂度为 O(1 ) 时间复杂度


如果您没有像 '1.0000' 这样的字符串,您也可以使用:

str(1.0) in tmp_dict or str(int(1.0)) in tmp_dict

关于python - 检查 float 是否在 Python 的字典键中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60835045/

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