python教程 對雙向佇列的理解

2021-10-24 23:59:24 字數 1650 閱讀 3931

介紹

deque 是什麼

collections.deque 類(雙向佇列)是乙個執行緒安全、可以快速從兩端新增或者刪除元素的資料型別。而且如果想要有一種資料型別來存 放「最近用到的幾個元素」,deque 也是乙個很好的選擇。這是因為在新建乙個雙向佇列的時候,你可以指定這個佇列的大小,如果這個佇列滿員了,還可以從反向端刪除過期的元素,然後在尾端新增新的元素。

下面用幾個例項來說明如何使用雙向佇列以及帶來了什麼方便的處理方式。

一開始我們需要先初始化乙個固定長度的雙向佇列便於我們實驗。

說明:maxlen 是乙個可選引數,代表這個佇列可以容納的元素的數量,不可變。

from collections import  deque

#雙向佇列

listdq=deque(

range(10

),maxlen=10)

print

(listdq)

1.正向旋轉(迴圈)說明:佇列的旋轉操作接受乙個引數 n,當 n > 0 時,佇列的最右邊的 n 個元素會被移動到佇列的左邊。當 n < 0 時,最左邊的 n 個元素會被 移動到右邊。

#正向旋轉

listdq.rotate(2)

print

(listdq)

2.反向旋轉(逆時針)

#反向旋轉

listdq.rotate(-2

)print

(listdq)

3.附加資料

'''

'''#附加資料-1

)print

(listdq)10)

print

(listdq)

4.擴充套件資料說明:extendleft(iter) 方法會把迭代器裡的元素逐個新增到雙向佇列的左邊,因此迭代器裡的元素會逆序出現在佇列裡。注意是逆序。

#擴充套件資料

listdq.extendleft([20

,30,40

])print

(listdq)

listdq.extend([50

])print

(listdq)

以上**結果如下:

雙向列表和佇列的方法介紹:

總結:

本篇總結了列表和雙向佇列這兩個型別的方法(object 類包含的方 法除外)。

雙向佇列實現了大部分列表所擁有的方法,也有一些額外的符合自身設 計的方法,比如說 popleft 和 rotate。但是為了實現這些方法,雙向 佇列也付出了一些代價,從佇列中間刪除元素的操作會慢一些,因為它 只對在頭尾的操作進行了優化。

python 中的雙向佇列deque

class collections.deque iterable maxlen deque是乙個執行緒安全,可以快速在兩端操作的資料型別。如果maxlen沒有指定,那麼deque可以無限增長 反之,deque滿了之後,再有新的元素加入時,就會從另一端刪除舊元素。函式說明 clear copy 淺拷貝...

Python筆記之雙向佇列

collections.deque類 雙向佇列 是乙個執行緒安全,可以快速從兩端新增或者刪除元素的資料型別。而且如果想要一種資料型別來存放 最近用到的幾個元素 deque也是乙個很好的選擇。這是因為在新建乙個雙向佇列的時候,你可以指定這個佇列的大小,如果這個佇列滿員了,還可以從反向端刪除過期的元素,...

Python雙向佇列是什麼

1 說明 python 的雙向佇列使用 collections.deque 類來實現。它是乙個執行緒安全且可以快速從兩端新增或者刪除元素的類。deque d k 2 例項 luciano ramalho 舉了乙個示例來說明雙向佇列的基本用法。from collections import deque...