Python - 雙端佇列 (Deque)


在 Python 中,雙端佇列 (deque) 是一種類似於棧和佇列的資料結構。它允許在佇列的兩端進行新增和彈出操作,這使其區別於其他資料結構。下面列出了適用於雙端佇列的各種操作。在本文中,我們將看到每個操作的示例。 `collections` 模組用於實現雙端佇列。

雙端佇列操作

以下是使用雙端佇列執行的一些常用操作

  • append() − 此函式用於將引數中的值插入到雙端佇列的右側。

  • appendleft() − 此函式用於將引數中的值插入到雙端佇列的左側。

  • pop() − 此函式用於從雙端佇列的右側刪除一個元素。

  • popleft() − 此函式用於從雙端佇列的左側刪除一個元素。

  • extend(iterable) − 此函式用於在雙端佇列的右側新增多個值。傳遞的引數是可迭代物件。

  • extendleft(iterable) − 此函式用於在雙端佇列的左側新增多個值。傳遞的引數是可迭代物件。由於左側新增,順序會反轉。

  • reverse() − 此函式用於反轉雙端佇列元素的順序。

  • rotate() − 此函式根據引數中指定的數字旋轉雙端佇列。如果指定的數字為負數,則向左旋轉;否則向右旋轉。

示例

下面的程式演示瞭如何使用雙端佇列和 `collections` 模組實現上述操作。

 線上演示

import collections
de = collections.deque([10,20,30,40])
print(de)
de.append(50)
print ("\nAppending at right the deque is : ")
print (de)
de.appendleft(60)
print ("\nAppending at left the deque is : ")
print (de)
de.pop()
print ("\nDeleting from right the deque is: ")
print (de)
de.popleft()
print ("\nDeleting from left the deque is: ")
print (de)
de.extend([70,80])
print ("\nExtending deque at end is : ")
print (de)
de.extendleft([100,90])
print ("\nExtending deque at beginning is : ")
print (de)
de.rotate(-2)
print ("\nRotating deque is : ")
print (de)
de.reverse()
print ("\nReversing deque is : ")
print (de)

輸出

執行以上程式碼將得到以下結果:

deque([10, 20, 30, 40])
Appending at right the deque is :
deque([10, 20, 30, 40, 50])
Appending at left the deque is :
deque([60, 10, 20, 30, 40, 50])
Deleting from right the deque is:
deque([60, 10, 20, 30, 40])
Deleting from left the deque is:
deque([10, 20, 30, 40])
Extending deque at end is :
deque([10, 20, 30, 40, 70, 80])
Extending deque at beginning is :
deque([90, 100, 10, 20, 30, 40, 70, 80])
Rotating deque is :
deque([10, 20, 30, 40, 70, 80, 90, 100])
Reversing deque is :
deque([100, 90, 80, 70, 40, 30, 20, 10])

更新於:2020年2月14日

391 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告