介紹
Sorted Containers是Apache2許可的Sorted Collections庫,用純Python編寫,并且可以像C擴充一樣快速。
Python的标準庫已經非常實用了,實踐已經證明,即使沒有一個擴充,您也可以真正走得很遠。但是,當您真正需要排序清單、排序字典或排序集合時,您将面臨許多不同的實作,其中大多數使用C擴充,而且沒有完善的文檔和基準測試。
在Python中,我們可以做得更好。我們可以用純Python做到這一點!

上面顯示的所有操作都比線性時間快。上面的示範還占用了将近1 GB的記憶體。當排序清單乘以一千萬時,它将存儲對“ a”到“ e”中的每一個的一千萬個引用。每個引用在已排序的容器中需要八個位元組。這是很難克服的,因為這是指向每個對象的指針的代價。與每個節點還必須存儲兩個指向子節點的指針的典型二叉樹實作(例如,Red-Black Tree, AVL-Tree, AA-Tree, Splay-Tree, Treap等)相比,開銷也減少了66%。
Sorted Containers将所有工作從Python分類集合中剔除-簡化了Python的部署和使用。無需安裝C編譯器或預先建構和分發自定義擴充。性能是一項功能,測試具有100%的單元測試覆寫率和數小時的壓力。
特點
-
純Python
完善的文檔
基準比較(替代方案,運作時,負載因子)
100%的測試覆寫率
壓力測試時間
性能很重要(通常比C實作更快)
相容的API(幾乎與舊的blist和bintrees子產品相同)
功能豐富(例如,按排序的字典擷取五個最大的鍵:d.keys()[-5:])
實用的設計(例如SortedSet是具有SortedList索引的Python集)
在Python 3.7上開發
在CPython 2.7、3.2、3.3、3.4、3.5、3.6、3.7和PyPy,PyPy3上測試
快速開始
通過pip快速安裝Sorted Containers:
$ pip install sortedcontainers
您也可以下載下傳我們備份的網盤版庫檔案包:
download sortedcontainers文檔資料
有關sortedcontainers的完整文檔,請通路 www.grantjenks.com/docs/sortedcontainers