Python如何在字典(Dictionary)中找最近的键(——已解决)

【Python如何在字典(Dictionary)中找最近的键(——已解决)】在python中,字典中键的搜索已经被讨论过很多次了。但是有时候,我们可能会遇到一个问题,我们需要获取给定键中最近的键。让我们讨论一下执行这项任务的某些方法。
方法一:使用列表推导(list comprehension)+keys()+lambda上述函数的组合可用于执行在字典中查找最近键的特定任务。键函数可用于从字典中访问键,lambda函数可用于表示逻辑和列表理解,从而将所有这些应用于整个列表。

# Python3代码 # 寻找字典中最近的键 # 使用列表推导(list comprehension) + keys() + lambda # 初始化字典 test_dict = {13 : 'Hi', 15 : 'Hello',16 : 'Gfg'} # 初始化最近的键 search_key = 15.6# 打印原始字典 print("原始字典是 : " + str(test_dict)) # 使用列表推导(list comprehension) + keys() + lambda # 寻找字典中最近的键 res = test_dict.get(search_key) or test_dict[ min(test_dict.keys(), key = lambda key: abs(key-search_key))] # 打印结果 print("最近的键为 : " + str(res))

方法二:使用bisect_left() + OrderedDict()该方法一般采用二叉搜索法求最接近的数。虽然速度很快,但是它改变了顺序,并且还返回了最近值的两个潜在候选值,当前值和下一个键s值。返回key的位置。
# Python3代码 # 寻找字典中最近的键 # 使用 bisect_left() + OrderedDict() import collections import bisect # 初始化字典 test_dict = collections.OrderedDict() test_dict = {13 : 'Hi', 15 : 'Hello',16 : 'Gfg'} # 初始化最近的键 search_key = 15.6# 打印原始字典 print("原始字典为: " + str(test_dict)) # 使用 bisect_left() + OrderedDict() # 字典中最近的键 res = bisect.bisect_left(list(test_dict.keys()), 15.6) # 打印结果 print("最近键的位置为: " + str(res))

    推荐阅读