从整数列表中,获取最接近给定值的数字

里奇·罗宾逊(Ricky Robinson):

给定一个整数列表,我想找到哪个数字与我在输入中提供的数字最接近:

>>> myList = [4, 1, 88, 44, 3]
>>> myNumber = 5
>>> takeClosest(myList, myNumber)
...
4

有什么快速的方法可以做到这一点吗?

kennytm:

如果不确定列表是否已排序,则可以使用内置min()函数,查找与指定数字之间的最小距离的元素。

>>> min(myList, key=lambda x:abs(x-myNumber))
4

请注意,它也可用于带有int键的字典,例如{1: "a", 2: "b"}此方法花费O(n)时间。


如果列表已经排序,或者您只需要为数组排序一次,就可以使用@Lauritz答案中所示的二等分方法,该方法只需要O(log n)时间(但请注意,检查列表是否已排序为O) (n),排序为O(n log n)。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从整数列表中,获取最接近给定值的数字

获得最接近数组中数字的值

从日期列表中获取最接近的日期?

从列表中获取最接近的日期时间

从数组获取数字的最接近值

使用C#通过求和或精确单个值从列表中获取最接近的值

如何从列表中获取最接近给定目标的向量

如何通过scala中的给定键从地图获取最接近的值?

从字符串和整数的元组中,获取最接近给定值的元组内部的数字

从字典中获取最接近的可用值

XQuery:查找最接近给定数字的值

在列表中找到与给定数字最接近的位置

查找值最接近给定数字的行

在整数数组中查找最接近的数字

排序最接近给定数字的数字

将数据框中的舍入舍入到最接近的特定浮点值(舍入到非整数列表)

给定一个浮点数,查找列表中还是最接近的数字

在列表中找到与给定数字最接近的较小和较大值的最佳方法是什么

从字典列表中获取最接近的元素

返回与列表中给定值最接近的项目及其索引

SQL:通过关系查找最接近给定值的数字

从列中找到最接近的值,并从相邻列中返回数字(在列表内)

如何获取最接近x的列表中的值的索引?

C# - 在列表中获取最接近的更大数字

获取列表中某个给定数字的 3 个最接近的值?

查找与数组中给定值最接近的值

用于查找给定值的最接近数字的函数

获取最接近值的数字 - 如果多个最接近,则获取所有 - Python

根据最接近给定数字的十进制值获取密钥