python输入多个数字后续操作_有效地确定后续数字范围中的数字是否在有序列表中. (在Python中)...
对于范围的每个边界,您可以使用
binary-search两次(使用
bisect.bisect_left()).
如果返回的索引相同,则没有交集(返回None).
如果不是,则返回start_index处的元素(其中start_index是您的范围开始时获得的索引).
这是代码:
import bisect
def intersect_range(lst, start, stop):
start_i = bisect.bisect_left(lst, start)
stop_i = bisect.bisect_left(lst, stop)
if start_i == stop_i:
return None
else:
return lst[start_i]
intersect_range([1,2,3,7,8,10,15], 5, 10)
=> 7
intersect_range([1,2,3,7,8,10,15], 5, 6)
=> None
intersect_range([1,2,3,7,8,10,15], 15,30)
=> 15
intersect_range([1,2,3,7,8,10,15], 0,1) # "stop" is excluded from range
=> None
由于您执行了两次二进制搜索,因此复杂度为O(logN),其中N是列表的长度.
编辑:
还有一个稍快的替代方案,即二进制搜索范围的开始,然后检查lst [start_index]是否在范围内(start< = lst [start_i]< stop).这将logN操作的数量从两个减少到一个.代码如下所示:
def intersect_range(lst, start, stop):
start_i = bisect.bisect_left(lst, start)
if start <= lst[start_i] < stop:
return lst[start_i]
else:
return None
python输入多个数字后续操作_有效地确定后续数字范围中的数字是否在有序列表中. (在Python中)...相关推荐
- python输入一个整数倒序输出_利用Python实现倒序任意整数
这是很早以前学习C时候做过的一个练习题,题目的要求大概是把用户输入的三位数倒序输出,比如说用户输入123,然后程序应该输出的结果是321.如果遇到用户输入100,那么程序应该输出1.然后我给扩展一下, ...
- python输入水果求个数问题_水果爱好者:用Python解决一个简单的分类问题
作者 | Ocktavia Nurima Putri 来源 | Medium 编辑 | 代码医生团队 在这篇文章中,将使用Scikit-learn在Python中实现几种机器学习算法.将使用一个简单的 ...
- python输入什么就输出什么_一文读懂Python的输入和输出
本文介绍了Python的输入和输出,既然是Python代码,那么就一定有输出量,那么,Python是如何输出的呢? 输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'h ...
- 用python输入任意三条边长_如何用python求第三条边边长
用Python实现"已知三角形两个直角边,求斜边" 要求:用户输入两个直角边(数值为浮点类型),若非浮点类型,则提示用户,继续输入. 思路:伪代码描述下步骤 1.-input a ...
- python输入多个坐标点_判断多个坐标是否在同一条直线上|Python练习系列[13]
练习内容:判断多个坐标是否在同一条直线上 完整代码和注释如下 print('请输入几个点的横纵坐标,程序将会返回这几个点是否在同一条直线上') def coor_nums():#获得每个值的横纵坐标 ...
- python cnn代码详解图解_基于TensorFlow的CNN实现Mnist手写数字识别
本文实例为大家分享了基于TensorFlow的CNN实现Mnist手写数字识别的具体代码,供大家参考,具体内容如下 一.CNN模型结构 输入层:Mnist数据集(28*28) 第一层卷积:感受视野5* ...
- python输入边数绘制正多边形_如何用Python,画一个正多边形,长度和颜色还是任意的!...
Python画基本形状,要用到自带的turtle库,这是个简单绘图的入门小工具. 任务设定如上,下面来一点点拆解它. 从键盘获取用户输入的边数. 画笔形状由原来的三角形,改为海龟形状. 长度随机产生, ...
- python输入一个人的名字_怎样用c语言做到输入一个人的名字才会输出一个心?
搞事开始. 首先,我们先进行如下声明 #include #include #include #include HDC offscreen; long double param; COLORREF C_ ...
- python输入三次密码程序_请教各位大神,为啥以下代码输入修改密码后连输错三次还是能输入...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #定义一个密码,列表属性,可以修改 password_list = ['reset', '12345'] #定义一个函数,设定输入次数 def user_ ...
最新文章
- word2vec模型评估_干货 | NLP中的十个预训练模型
- android 找不到符号 符号 RequiresApi
- Shell(3)——截取某些字符、默认值处理
- 关于字符串流的学习(c++)
- 了解cron以及使用cron定时备份MySQL
- 提高 Web 站点性能的最佳实践
- Java第一章java语言的概述
- python开发mes系统_MES系统开发
- linux ns机制,Linux内核API ns_to_timespec
- Maven知识- repositories
- js系列之每天一练成长录之一
- STM32程序的烧录方式 与 ISP一键下载
- 最经典的10部爱情小说
- 功率是电压电流乘积的波形在一个周期内积分后除以周期。
- 非常详细的STM32 CAN通信的贴子,从总线细节到编程实现
- java 斗地主出牌算法_斗地主智能(AI)出牌算法
- 服务器pfx文件如何导入,linux 导入pfx 证书
- 打造超级IP,你真悟错了道!
- 关于微信小程序webview的使用
- Cocos2d的ChipMunk