heapq.nsmallest()功能将这样整齐和有效:

>>> from heapq import nsmallest

>>> s = [1,2,3,4,5,6,7]

>>> nsmallest(3, s, key=lambda x: abs(x-6.5))

[6, 7, 5]

基本上,这说,“给我三个输入值与数字6.5的绝对差最小。

nsmallest的算法使得对数据进行单次传递,在任何时间保持不超过内存中的n个最佳值(这意味着它可以与任何输入迭代器一起使用,是高速缓存效率和空间效率的)。

当找到新的“最佳”值时,算法仅向堆添加新值。因此,它使得进行的比较的数量最小化。例如,如果您在1,000,000个随机输入中查找100个最佳值,则通常会进行少于1,008,000次比较(比使用min()找到单个最佳值大约多0.8%的比较)。

对于min(),nsmallest()和sorted()的key functions都保证在输入iterable中每个值只调用一次键函数。这意味着该技术对于n个最接近的值问题(即,sound the most alike,最接近colors,smallest diffs,最少的遗传突变,欧几里德距离等)的甚至更复杂和有趣的示例将是有效的。

nsmallest()和sorted()将返回按接近度排序的列表排名(关系由首先看到的值确定)。

对于有兴趣的人,有一个涉及的比较的预期数量的分析here和here.快速总结:

>随机输入的平均情况:n k *(log(k,2)* log(n / k)log(k,2)log(n / k))>用于上升输入的最佳情况:n k * log(k,2)>最差情况下降输入:n * log(k,2)

python找数字_python – 找到与给定数字最接近的数字相关推荐

  1. python找出只出现一次的数字_Python数组中只出现一次的数字

    任何一个数字异或他自己都等于0,0异或任何一个数都等于那个数.数组中出了两个数字之外,其他数字都出现两次,那么我们从头到尾依次异或数组中的每个数,那么出现两次的数字都在整个过程中被抵消掉,那两个不同的 ...

  2. python找色_python实现从一组颜色中找出与给定颜色最接近颜色的方法

    本文实例讲述了python实现从一组颜色中找出与给定颜色最接近颜色的方法.分享给大家供大家参考.具体分析如下: 这段代码非常有用,可以找到指定颜色相似的颜色,比如有一组8个颜色,现在给定一个rgb格式 ...

  3. python找数字_python:找到一个数字序列

    我会尝试用一种不那么暴力的方法来解决这个问题. 先做一些思想实验.其他每个数字都有相同的因子2.对于剩下的8或9,您需要更多的因素.例如,你可以有一个系数3,对其中一些人来说很常见.然后是另一个因素, ...

  4. python找房源_Python租房信息分析!找到最适合自己的房源信息!

    原标题:Python租房信息分析!找到最适合自己的房源信息! 租房信息分析 import numpy as np import pandas as pd import matplotlib.pyplo ...

  5. python组成三位无重复数字_Python生成十万个无序且唯一的数字

    数字无处不在, 在一些应用场景就特别需要, 比如 订单号 / 防伪码 / 抽奖 / 用户编号 等. 订单号一般都是即时生成的, 比如很多都是用下单时间或者时间戳 如:2020043018010005 ...

  6. python信用卡客户_Python开发之基于模板匹配的信用卡数字识别功能

    环境介绍 python 3.6 + OpenCV 3.4.1.15 原理介绍 首先,提取出模板中每一个数字的轮廓,再对信用卡图像进行处理,提取其中的数字部分,将该部分数字与模板进行匹配,即可得到结果. ...

  7. python 自动生成数字_python – 使用yaml自动生成配置和具有数字...

    我的应用程序使用Django non-rel.我无法访问模型. 我有appcfg.py create_bulkloader_config自动生成的bulkloader.yaml文件. 问题是实体数字I ...

  8. python找最小值_Python,lambda,找到最小值

    我有foreach函数,它在它包含的每个元素上调用指定的函数.我希望从这个元素中得到最少但我不知道如何编写lambda或函数,甚至是一个能够管理它的类. 谢谢你的帮助. 我使用我的foreach函数: ...

  9. python找思路_python 爬取贝壳的一些思路和方法设计(用地址找到小区名字)

    1.查mysql 获取 title 或者 address 2.用title或者address参数,request.get方法 查百度地图的地址api: http://api.map.baidu.com ...

  10. python判断是否包含某数字_python如何判断数组里是否有某个数字

    Python 3语言开发教程.Python 3语言in操作符使用教程.Python 3语言如何判断数组内是否存在某一个元素? 工具/原料 电脑 Editplus 方法/步骤 1 在Python语言中, ...

最新文章

  1. Obj文件和Bin文件
  2. Redis构建分布式锁——Redlock
  3. linux 在线帮助,linux获取在线帮助
  4. 对话鲁直:蚂蚁金服中间件的开源头羊 | 穿山甲专访
  5. kafka:topic为什么要进行分区?副本机制是如何做的?
  6. python2安装包_解决win10下python2和python3共存问题
  7. VC6.0加载lib文件的三种方法
  8. python如何写生日快乐图片_Python 生活第一周母校生日快乐
  9. 从“制造”到“智造”,南高齿携手锐捷打造“智能工厂”
  10. 关于Zxing生成DM二维码变形问题总结
  11. 小游戏学习--获取已发布微信小游戏源码 creator cocos 编译出微信平台代码 喵喵切水果 跑酷
  12. 指数基金的正确购买姿势
  13. 288388D-EnterCAT调试
  14. 云计算 概念 是什么
  15. html图片无损压缩,有损压缩和无损压缩的区别是什么
  16. 爬虫工具 AppCrawler
  17. 微软的软件测试工程师——《微软的软件测试之道》
  18. HDU1234 开门人和关门人
  19. Oracle设置主键报错 ORA-02437: 无法验证 (DENGCHAO.TEST) - 违反主键
  20. SRTM DEM hgt格式转成GRID格式的问题解决

热门文章

  1. 金融货币学笔记(米什金)第一章 为什么研究货币、银行与金融市场
  2. python学习的读书路线
  3. 精心整理的计算机专业书单
  4. 女神周迅离婚,Python分析国内离婚情况,结果触目惊心!
  5. 在ROS中创建工作区时出现错误
  6. 东南电子IPO过会:应收账款8023万 美的与格力未付款
  7. 使用百度地图API进行Android地图应用开发(Eclipse)
  8. SECS\GEM RMS系统简介
  9. 面试算法:利用堆栈计算逆向波兰表达式
  10. win7 计算机打不开搜狗,Win7电脑搜狗输入法不见了如何解决?