1. 程式人生 > >python3入門之 deque(雙向佇列)

python3入門之 deque(雙向佇列)

建立雙向佇列

>>> import collections
>>> d = collections.deque()

append(往右邊新增一個元素)

>>> d.append(1)
>>> d.append(2)
>>> d
deque([1, 2])

appendleft(往左邊新增一個元素)

>>> d.appendleft(3)
>>> d
deque([3, 1, 2])

clear(清空佇列)

>>> d
deque
([3, 1, 2]) >>> d.clear() >>> d deque([])

copy(淺拷貝)

>>> d.append(1)
>>> d.append(2)
>>> d
deque([1, 2])
>>> d1 = d.copy()
>>> d1
deque([1, 2])

count(返回指定元素的出現次數)

>>> d.append(1)
>>> d
deque([1, 2, 1])
>>> 
d.count(1) 2

extend(從佇列右邊擴充套件一個列表的元素)

>>> d.clear()
>>> d.append(1)
>>> d.extend([3,4,5])
>>> d
deque([1, 3, 4, 5])

extendleft(從佇列左邊擴充套件一個列表的元素)

>>> d.clear()
>>> d.append(1)
>>> d.extendleft([3,4,5])
>>> d
deque([5, 4, 3
, 1])

index(查詢某個元素的索引位置)

>>> d.extend(["a","b","c","d","e"])
>>> d
deque(['a', 'b', 'c', 'd', 'e'])
>>> d.index("c",0,3) #指定查詢區間
2
>>> d.index("c",0,2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: 'c' is not in deque

insert(在指定位置插入元素)

>>> d
deque(['a', 'b', 'c', 'd', 'e'])
>>> d.insert(2,"z")
>>> d
deque(['a', 'b', 'z', 'c', 'd', 'e'])

pop(獲取最右邊一個元素,並在佇列中刪除)

>>> d
deque(['a', 'b', 'z', 'c', 'd', 'e'])
>>> d.pop()
'e'
>>> d
deque(['a', 'b', 'z', 'c', 'd'])

popleft(獲取最左邊的一個元素,並在佇列中刪除)

>>> d
deque(['a', 'b', 'z', 'c', 'd'])
>>> d.popleft()
'a'
>>> d
deque(['b', 'z', 'c', 'd'])

remove(刪除指定元素)

>>> d
deque(['b', 'z', 'c', 'd'])
>>>
>>> d.remove("c")
>>> d
deque(['b', 'z', 'd'])

reverse(佇列翻轉)

>>> d
deque(['a', 'b', 'c', 'd', 'c'])
>>> d.reverse()
>>> d
deque(['c', 'd', 'c', 'b', 'a'])

rotate(把右邊元素放在左邊)

>>> d
deque(['c', 'd', 'c', 'b', 'a'])
>>> d.rotate(2)
>>> d
deque(['b', 'a', 'c', 'd', 'c'])