【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))
推荐阅读
- Python如何计算给定字符串中的重叠子字符串(——已解决)
- Python机器学习高阶实战!使用Tensorflow对象检测API训练图像分类器
- Python机器学习高级算法!谱聚类(Spectal Clustering)算法分析和实例详解
- Vue.js功能特性全面介绍,VueJS和React、Angular的对比和区别
- CSS display属性详细介绍
- OOP编程(C++封装详细介绍)
- AngularJS angular.isArray()函数
- 算法设计(最大子数组的乘积)
- 计算两个列表共有但价格不同的商品