python标准库 bisect模块
# -*- coding: utf-8 -*-
# python:2.x
__author__ = 'Administrator'
#bisect
#作用:维护有序列表,而不必在每次向列表增加一个元素时都调用sort()排序
#版本:1.4及之后
#其他:实现了一个算法用于向列表中插入元素,同时保持列表有序,有些情况下,这比反复对一个列表排序更高效,另外也比构建一个大列表之后显示对基排序更高效
#有序插入
#insort()按有序顺序向一个列表中插入元素
import bisect,random
random.seed(1)
# Use a constant see to ensure that we see
# the same pseudo-random numbers each time
# we run the loop.
print 'new pos contents'
print '--- --- -------'
# Generate 20 random numbers and
# insert them into a list in sorted
# order.
l = []
for i in range(1, 20):
r = random.randint(1, 100)
position = bisect.bisect(l, r)
bisect.insort(l, r)
print '%3d %3d' % (r, position), l
#处理重复
#bisect提供了2种方法来处理重复,亲传以插入到现有值的左边或者右边,insort()实际上是insort_right()另外,这个函数会在现有值之后插入新值,对应的insort_left()则会在现有值之前插入新值
# Reset the seed
random.seed(1)
# Use bisect_left and insort_left.
print 'new pos contents'
print '--- --- -------'
l=[]
for i in range(1,15):
r=random.randint(1,100)
position = bisect.bisect_left(l, r)
bisect.insort_left(l, r)
print '%2d %2d' % (r, position), l
#官方文档:https://docs.python.org/2.7/library/bisect.html?highlight=bisect#bisect
#对这部分算法讨论:http://pymotw.com/2/articles/data_structures.html#article-data-structures
#更多标准库有关例子 :http://pymotw.com/2/
python标准库 bisect模块的更多相关文章
- [python标准库]Pickle模块
Pickle-------python对象序列化 本文主要阐述以下几点: 1.pickle模块简介 2.pickle模块提供的方法 3.注意事项 4.实例解析 1.pickle模块简介 The pic ...
- Python 标准库 ConfigParser 模块 的使用
Python 标准库 ConfigParser 模块 的使用 demo #!/usr/bin/env python # coding=utf-8 import ConfigParser import ...
- Python标准库——collections模块的Counter类
1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict.set.list.tuple以外的一些特殊的容器类型,分别是: OrderedDict类 ...
- [python标准库]XML模块
1.什么是XML XML是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词. ...
- 【python】Python标准库defaultdict模块
来源:http://www.ynpxrz.com/n1031711c2023.aspx Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会 ...
- Python标准库--os模块
这个模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行.一个例 ...
- python标准库 sysconfig模块
# -*- coding: utf-8 -*-# python:2.x__author__ = 'Administrator'import sysconfig#sysconfig:解释器编译时配置#作 ...
- Python标准库 -- UUID模块(生成唯一标识)
UUID是什么: UUID: 通用唯一标识符 ( Universally Unique Identifier ),对于所有的UUID它可以保证在空间和时间上的唯一性,也称为GUID,全称为: UUID ...
- Python——标准库 Sys模块
---------------------------------------------------------------------------------------------------- ...
随机推荐
- NetAnalyzer笔记 之 一. 开篇语
[创建时间:2015-08-26 22:00:12] NetAnalyzer下载地址 第一次写技术相关的博客,不足之处还请担待并告知. 在开始之前,先简单介绍一下NetAnalyzer, NetAna ...
- Qt5官方demo解析集21——Extending QML - Adding Types Example
本系列全部文章能够在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 又是一个新的系列了,只是这个系列和我们之前的Chapt ...
- oracle的启动和关闭
一.sql*plus方式: 用sql*plus来连接到Oracle Sqlplus /nolog 是以不连接数据库的方式启动sql*plus Connect /as sysdba 是以DBA ...
- 慕课linux学习笔记(一)centOS的安装
在VMware8上安装centos6.3 准备的文件 新建虚拟机 选择新建一个空的虚拟机 选择linux和centos 分配20G的硬盘空间 ' 修改配置 调整内存空间 桥接:虚拟机和真实机通讯使用的 ...
- Easyui 排序时 自动向后排传sort order 你妹真坑爹
request 的时候 发现 sort 竟然是个数组!
- Android开发环境的搭建之(一)Java开发环境的安装
(1) 安装JDK(Java Developer Kit).下载JDK1.8并安装jdk-8u60-windows-i586.exe.下载官方链接http://www.oracle.com/tech ...
- 刷新 tableview
UITableView对于iOS开发者来说一定不会陌生,很有可能你的APP很多界面都用到它.关于UITableView的文章,想必已经不计其数,没事可以多看看.特别是UITableView优化的文章, ...
- hdu4006 优先队列
A - 签到 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:65768KB 64bit I ...
- 初学QML之qmlRegisterType
qmlRegisterType 是一个可以将C++实现的类在QML中调用的,连接C++和QML的一个工具 首先来看QtAssistant的介绍 int qmlRegisterType(const ch ...
- 为什么memset不能将数组元素初始化为1?
原型:extern void *memset(void *buffer, int c, int count); 功能:把buffer所指内存区域的前count个字节设置成字符c. 包含头文件:< ...