欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中bisect的用法

 更新時間:2014年09月23日 15:55:07   投稿:shichen2014  
這篇文章主要介紹了Python中bisect的用法,主要講述了針對數組的插入及排序操作,非常具有實用價值,需要的朋友可以參考下

本文實例講述了Python中bisect的用法,是一個比較常見的實用技巧。分享給大家供大家參考。具體分析如下:

一般來說,Python中的bisect用于操作排序的數組,比如你可以在向一個數組插入數據的同時進行排序。下面的代碼演示了如何進行操作:

import bisect
import random
random.seed(1)
print('New pos contents')
print('-----------------')
l=[]
 
for i in range(1,15):
  r=random.randint(1,100)
  position=bisect.bisect(l,r)
  bisect.insort(l,r)
  print '%3d %3d'%(r,position),l

輸出結果為:

New pos contents
-----------------
 14  0 [14]
 85  1 [14, 85]
 77  1 [14, 77, 85]
 26  1 [14, 26, 77, 85]
 50  2 [14, 26, 50, 77, 85]
 45  2 [14, 26, 45, 50, 77, 85]
 66  4 [14, 26, 45, 50, 66, 77, 85]
 79  6 [14, 26, 45, 50, 66, 77, 79, 85]
 10  0 [10, 14, 26, 45, 50, 66, 77, 79, 85]
 3  0 [3, 10, 14, 26, 45, 50, 66, 77, 79, 85]
 84  9 [3, 10, 14, 26, 45, 50, 66, 77, 79, 84, 85]
 44  4 [3, 10, 14, 26, 44, 45, 50, 66, 77, 79, 84, 85]
 77  9 [3, 10, 14, 26, 44, 45, 50, 66, 77, 77, 79, 84, 85]
 1  0 [1, 3, 10, 14, 26, 44, 45, 50, 66, 77, 77, 79, 84, 85]

可以看到,在插入這些隨機數的時候數組同時進行了排序。不過其中有一些重復的元素,比如上面的77,77。你可以對這些重復元素的順序進行設置,如果希望重復的元素出現在與他相同的元素左邊就是用bisect_left,否則就是用bisect_right,相應的使用insort_left和insort_right。比如下面的代碼,我們可以看到出現重復的元素索引變化:

import bisect
import random
random.seed(1)
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 '%3d %3d'%(r,position),l

輸出結果為:

New pos contents
-----------------
 14  0 [14]
 85  1 [14, 85]
 77  1 [14, 77, 85]
 26  1 [14, 26, 77, 85]
 50  2 [14, 26, 50, 77, 85]
 45  2 [14, 26, 45, 50, 77, 85]
 66  4 [14, 26, 45, 50, 66, 77, 85]
 79  6 [14, 26, 45, 50, 66, 77, 79, 85]
 10  0 [10, 14, 26, 45, 50, 66, 77, 79, 85]
 3  0 [3, 10, 14, 26, 45, 50, 66, 77, 79, 85]
 84  9 [3, 10, 14, 26, 45, 50, 66, 77, 79, 84, 85]
 44  4 [3, 10, 14, 26, 44, 45, 50, 66, 77, 79, 84, 85]
 77  8 [3, 10, 14, 26, 44, 45, 50, 66, 77, 77, 79, 84, 85]
 1  0 [1, 3, 10, 14, 26, 44, 45, 50, 66, 77, 77, 79, 84, 85]

此函數bisect.bisect(list,key) ,猶如java里的TreeMap的tailMap(fromkey)。

希望本文所述對大家的Python程序設計有所幫助。

相關文章

  • Python實現抓取頁面上鏈接的簡單爬蟲分享

    Python實現抓取頁面上鏈接的簡單爬蟲分享

    這篇文章主要介紹了Python實現抓取頁面上鏈接的簡單爬蟲分享,本文使用了一個開源模塊requests實現需求,需要的朋友可以參考下
    2015-01-01
  • Python實現給文件添加內容及得到文件信息的方法

    Python實現給文件添加內容及得到文件信息的方法

    這篇文章主要介紹了Python實現給文件添加內容及得到文件信息的方法,可實現從文件開頭添加內容的功能,需要的朋友可以參考下
    2015-05-05
  • 使用 Python 處理 JSON 格式的數據

    使用 Python 處理 JSON 格式的數據

    JSON 是一個很好的選擇。如果你對 Python 有所了解,就更加事半功倍了。下面就來介紹一下如何使用 Python 處理 JSON 數據。感興趣的朋友跟隨小編一起看看吧
    2019-07-07
  • 在Python中使用defaultdict初始化字典以及應用方法

    在Python中使用defaultdict初始化字典以及應用方法

    今天小編就為大家分享一篇在Python中使用defaultdict初始化字典以及應用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 基于Python實現虛假評論檢測可視化系統(tǒng)

    基于Python實現虛假評論檢測可視化系統(tǒng)

    這篇文章主要為大家詳細介紹了如何基于Python實現一個簡單的虛假評論檢測可視化系統(tǒng),文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-04-04
  • Python內置數學函數和math模塊使用指南

    Python內置數學函數和math模塊使用指南

    這篇文章主要為大家介紹了Python數學函數math模塊使用指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Python生成詞云的實現代碼

    Python生成詞云的實現代碼

    這篇文章主要介紹了Python生成詞云,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • python smtplib模塊實現發(fā)送郵件帶附件sendmail

    python smtplib模塊實現發(fā)送郵件帶附件sendmail

    這篇文章主要為大家詳細介紹了python smtplib模塊實現發(fā)送郵件帶附件sendmail,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Python3多線程操作簡單示例

    Python3多線程操作簡單示例

    這篇文章主要介紹了Python3多線程操作,結合實例形式分析了Python3兼容Python2使用_thread進行多線程操作的簡單實現技巧,需要的朋友可以參考下
    2018-05-05
  • python遺傳算法之單/多目標規(guī)劃問題

    python遺傳算法之單/多目標規(guī)劃問題

    本文主要介紹了python遺傳算法之單/多目標規(guī)劃問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04

最新評論