溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python類SortedList的作用分析

發(fā)布時間:2021-09-04 13:01:30 來源:億速云 閱讀:271 作者:chen 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“python類SortedList的作用分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python類SortedList的作用分析”吧!

目錄
  • SortedList 有序序列

    • 方法

      • 1.添加值

      • 2.移除值

      • 3.查找

      • 4.迭代值

      • 5. 其他

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已經(jīng)存在,則插入已經(jīng)存在的所有values之前(左側(cè)).時間復雜度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已經(jīng)存在,則插入已經(jīng)存在的所有values之后(右側(cè))。時間復雜度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) 查找元素出現(xiàn)的次數(shù)。時間復雜度O(log(n)).

s.count(5)
Out[9]: 5
  • SortedList.index(value, start=None, Stop=None) 查找索引范圍[start,stop)內(nèi)第一次出現(xiàn)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是表示返回的可迭代值是否反轉(zhuǎn)。

  • 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函數(shù),淺拷貝傳遞對象的引用,原始數(shù)據(jù)改變,只有子對象會改變。

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的作用分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI