關於python類SortedList詳解
SortedList 有序序列
class sortedcontainers.SortedList(iterable=None, key=None)
方法
1.添加值
- SortedList.add(value) 添加新元素,並排序。時間復雜度O(log(n)).
- SortedList.update(iterable) 對添加的可迭代的所有元素排序。時間復雜度O(k*log(n)).
2.移除值
- SortedList.clear() 移除所有元素。時間復雜度O(n).
- SortedList.discard(value) 移除一個值元素,如果元素不存在,不報錯。時間復雜度O(log(n)).
- SortedList.remove(value) 移除一個值元素,如果元素不存在,報錯ValueError。時間復雜度O(log(n)).
- SortedList.pop(index=-1) 移除一個指定下標元素,如果有序序列為空或者下標超限,報錯IndexError. 時間復雜度O(log(n
3.查找
- SortedList.bisect_left(value) 查找元素可以插入的位置下標,如果這個value已經存在,則插入已經存在的所有values之前(左側).時間復雜度O(log(n)).
s = SortedList([1,2,3,9,8,6,5,5,5,5,5]) s.bisect_left(5) Out[5]: 3 s Out[6]: SortedList([1, 2, 3, 5, 5, 5, 5, 5, 6, 8, 9])
- SortedList.bisect_right(value) 查找元素可以插入的位置下標,如果這個value已經存在,則插入已經存在的所有values之後(右側)。時間復雜度O(log(n)).
s.bisect_right(5) Out[7]: 8 s Out[8]: SortedList([1, 2, 3, 5, 5, 5, 5, 5, 6, 8, 9])
- SortedList.count(value) 查找元素出現的次數。時間復雜度O(log(n)).
s.count(5) Out[9]: 5
- SortedList.index(value, start=None, Stop=None) 查找索引范圍[start,stop)內第一次出現value的索引,如果value不存在,報錯ValueError. 時間復雜度O(log(n)).
4.迭代值
- SortedList.irange(minimun=None, maximum=None, inclusive=True, True, reverse=False) 返回value=[minimun,maximum]之間的可迭代值,inclusive = Ture, True 第一個True表示包括索引minimun, 第二個Ture表示包括索引maximum,reverse是表示返回的可迭代值是否反轉。
- SortedList.islice(start=None, stop=None, reverse=False) 返回index=[start, stop)之間的可迭代值(切片)。
5. 其他
- SortedList.copy() 返回一個淺拷貝有序序列。時間復雜度O(n)。
淺拷貝(1)直接賦值,默認淺拷貝傳遞對象的引用而已,原始列表改變,被賦值的列表也會做相同的改變。
a = [1,2,3] b=a b Out[60]: [1, 2, 3] a[0]=0 a Out[62]: [0, 2, 3] b Out[63]: [0, 2, 3]
淺拷貝(2)copy函數,淺拷貝傳遞子對象的引用,原始數據改變,隻有子對象會改變。
a = [[1],2,3] b = a.copy() a Out[85]: [[1], 2, 3] b Out[86]: [[1], 2, 3] # 對象不改變 a.append(4) a Out[88]: [[1], 2, 3, 4] b Out[89]: [[1], 2, 3] # 子對象跟著改變 a[0].append(2) a Out[91]: [[1, 2], 2, 3, 4] b Out[92]: [[1, 2], 2, 3]
以上就是關於python類SortedList詳解的詳細內容,更多關於python類SortedList詳解的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Python 二分查找之bisect庫的使用詳解
- Python3二分查找庫函數bisect(),bisect_left()和bisect_right()的區別
- Python學習之列表常用方法總結
- python中列表的常見操作梳理總結(一)
- python:列表詳解