# -*- 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模块的更多相关文章

  1. [python标准库]Pickle模块

    Pickle-------python对象序列化 本文主要阐述以下几点: 1.pickle模块简介 2.pickle模块提供的方法 3.注意事项 4.实例解析 1.pickle模块简介 The pic ...

  2. Python 标准库 ConfigParser 模块 的使用

    Python 标准库 ConfigParser 模块 的使用 demo #!/usr/bin/env python # coding=utf-8 import ConfigParser import ...

  3. Python标准库——collections模块的Counter类

    1.collections模块 collections模块自Python 2.4版本开始被引入,包含了dict.set.list.tuple以外的一些特殊的容器类型,分别是: OrderedDict类 ...

  4. [python标准库]XML模块

    1.什么是XML XML是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分.您可以创建内容,然后使用限定标记标记它,从而使每个单词. ...

  5. 【python】Python标准库defaultdict模块

    来源:http://www.ynpxrz.com/n1031711c2023.aspx Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会 ...

  6. Python标准库--os模块

    这个模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行.一个例 ...

  7. python标准库 sysconfig模块

    # -*- coding: utf-8 -*-# python:2.x__author__ = 'Administrator'import sysconfig#sysconfig:解释器编译时配置#作 ...

  8. Python标准库 -- UUID模块(生成唯一标识)

    UUID是什么: UUID: 通用唯一标识符 ( Universally Unique Identifier ),对于所有的UUID它可以保证在空间和时间上的唯一性,也称为GUID,全称为: UUID ...

  9. Python——标准库 Sys模块

    ---------------------------------------------------------------------------------------------------- ...

随机推荐

  1. Collections.sort()

    Comparator是个接口,可重写compare()及equals()这两个方法,用于比价功能:如果是null的话,就是使用元素的默认顺序,如a,b,c,d,e,f,g,就是a,b,c,d,e,f, ...

  2. Pojo和JavaBean的区别(转载)

    OJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象. 2005年11月时,“POJO”主要用来指代那些没用遵从特定的Java对象模型,约 ...

  3. [RxJS] Basic DOM Rendering with Subscribe

    While frameworks like Angular 2 and CycleJS provides great ways to update the DOM and handle subscri ...

  4. [置顶] ./build_native 时出现please define NDK_ROOT

    在一次帮朋友弄cygwin交叉编译时出现了这个问题 cygwin是按照成功了,make-v,以及gcc-v都没出现问题,就是在./build_native 时出现please define NDK_R ...

  5. 浅谈GitLab与Git

    前言:先解释下关于库的认识. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新增项目(远程仓库) 在GitLa ...

  6. css布局详解(二)——标准流布局(Nomal flow)

    css标准流布局(Nomal flow) 一.正常流 这是指西方语言中文本从左向右,从上向下显示,这也是我们熟悉的传统的HTML文档中的文本布局.注意,在非西方的语言中,流方向可能不同.大多数元素都在 ...

  7. 从反编译的角度去观察C#6.0

    1. 自动属性初始化 (Initializers for auto-properties) 1.1 C#6.0 之前的写法 public class FirstExperience { private ...

  8. WebApi2官网学习记录--- Authentication与Authorization

    Authentication(认证)   WebAPI中的认证既可以使用HttpModel也可以使用HTTP message handler,具体使用哪个可以参考一下依据: 一个HttpModel可以 ...

  9. BZOJ 3926 && ZJOI 2015 诸神眷顾的幻想乡 (广义后缀自动机)

    3926: [Zjoi2015]诸神眷顾的幻想乡 Time Limit: 10 Sec Memory Limit: 512 MB Description 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽 ...

  10. poj1006 孙子定理

    Biorhythms Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 127944   Accepted: 40566 Des ...