首先对于pop而言,它是用于stack中的:
stack = [1, 2, 3, 4]
print[stack]
stack.append[6]
print[stack]
print[stack.pop[1]] # 可以带参数
print[stack]
运行结果:
[1, 2, 3, 4]
[1, 2, 3, 4, 6]
2
[1, 3, 4, 6]
而对于pooleft是用于collections中,
from collections import deque
name = deque[["aaa", "bbb", "ccc", "ddd"]]
print[name]
name.append["xxx"]
print[name]
name.append["yyy"]
print[name]
print[name.popleft[]] # 不可以带参数
print[name]
运行结果:
deque[['aaa', 'bbb', 'ccc', 'ddd']]
deque[['aaa', 'bbb', 'ccc', 'ddd', 'xxx']]
deque[['aaa', 'bbb', 'ccc', 'ddd', 'xxx', 'yyy']]
aaa
deque[['bbb', 'ccc', 'ddd', 'xxx', 'yyy']]
Deque về cơ bản là sự khái quát hóa cấu trúc ngăn xếp và hàng đợi, nơi nó được khởi tạo từ trái sang phải. Nó sử dụng đối tượng list để tạo deque. Nó cung cấp độ phức tạp thời gian O[1] để bật và nối thêm
Dequeis một lớp thư viện tiêu chuẩn, nằm trong mô-đun bộ sưu tập
Để sử dụng nó, trước tiên chúng ta cần nhập nó mô-đun thư viện tiêu chuẩn của bộ sưu tập
import collections
Trong phần này chúng ta sẽ xem một số chức năng của lớp Deque
Các chức năng Appending trên Deque
Có hai loại append khác nhau. Phương thức append[] được sử dụng để thêm các phần tử ở đầu bên phải của hàng đợi và phương thức appendleft[] được sử dụng để nối thêm phần tử ở bên trái của hàng đợi
Mã ví dụ
import collections as col #Insert some elements into the queue at first my_deque = col.deque['124dfre'] print['Dequeue: ' + str[my_deque]] #insert x at right and B at left my_deque.append['x'] my_deque.appendleft['B'] print['Dequeue after appending: ' + str[my_deque]]
đầu ra
Dequeue: deque[['1', '2', '4', 'd', 'f', 'r', 'e']] Dequeue after appending: deque[['B', '1', '2', '4', 'd', 'f', 'r', 'e', 'x']]
Các chức năng Popping trên Deque
Giống như nối thêm, có hai loại hàm pop khác nhau. Phương thức pop[] được sử dụng để xóa và trả về phần tử bên phải nhất khỏi hàng đợi và phương thức popleft[] được sử dụng để xóa và trả về phần tử bên trái nhất khỏi hàng đợi
Mã ví dụ
import collections as col #Insert some elements into the queue at first my_deque = col.deque['124dfre'] print['Dequeue: ' + str[my_deque]] #delete item from right and left item = my_deque.pop[] print['Popped Item: ' + str[item]] item = my_deque.popleft[] print['Popped Item: ' + str[item]] print['Dequeue after pop operations: ' + str[my_deque]]
đầu ra
________số 8Các chức năng liên quan đến item trong Deque
Một số hàm trong Deque dùng để lấy thông tin liên quan đến item. Có một số hàm như index[], count[], v.v. Phương thức chỉ mục được sử dụng để lấy chỉ mục của lần xuất hiện đầu tiên của một phần tử. Khi không truyền đối số với phần tử, nó sẽ chọn toàn bộ danh sách, khi chỉ định một giới hạn nào đó, nó sẽ kiểm tra chỉ mục trong giới hạn đó. Mặt khác, phương thức count[] đếm tần suất của một mục trong Deque
Mã ví dụ
import collections as col #Insert some elements into the queue at first my_deque = col.deque['AABCDDEFD'] print['Dequeue: ' + str[my_deque]] #find the index of D print['Index of D:' + str[my_deque.index['D']]] print['Index of D in range 5 to 8 is: ' + str[my_deque.index['D', 5, 8]]] #Count the number of occurrences print['Occurrences of A: ' + str[my_deque.count['A']]] print['Occurrences of D: ' + str[my_deque.count['D']]]
đầu ra
[1, 2, 3, 4]
[1, 2, 3, 4, 6]
2
[1, 3, 4, 6]
0Các hàm insert[] và remove[] trong Deque
Chúng ta đã thấy các hàm append và pop trong Deque để chèn và xóa các phần tử tương ứng. Có hai phương pháp khác liên quan đến chèn và xóa. Phương thức insert[] được sử dụng để chèn một số. Trong trường hợp này, chúng tôi có thể cung cấp chỉ mục để chèn. Vì vậy, trên một vị trí được chỉ định, mục có thể được chèn. Và phương thức remove[] dùng để loại bỏ lần xuất hiện đầu tiên của một phần tử
Mã ví dụ
[1, 2, 3, 4]
[1, 2, 3, 4, 6]
2
[1, 3, 4, 6]
1đầu ra
[1, 2, 3, 4]
[1, 2, 3, 4, 6]
2
[1, 3, 4, 6]
2Mở rộng hàm trong Deque
Các hàm mở rộng được sử dụng để thêm nhiều phần tử vào Deque. Chúng tôi có thể sử dụng các bộ sưu tập như danh sách, bộ dữ liệu để cung cấp nhiều giá trị. Có hai loại chức năng mở rộng. Phương thức expand[] dùng để thêm phần tử vào bên phải, nó tương tự như hàm append[] lặp đi lặp lại. Và phương thức Extendleft[] dùng để thêm phần tử vào bên trái, nó tương tự như hàm appendleft[] lặp đi lặp lại
Mã ví dụ
[1, 2, 3, 4]
[1, 2, 3, 4, 6]
2
[1, 3, 4, 6]
3đầu ra
import collections as col #Insert some elements into the queue at first my_deque = col.deque['124dfre'] print['Dequeue: ' + str[my_deque]] #insert x at right and B at left my_deque.append['x'] my_deque.appendleft['B'] print['Dequeue after appending: ' + str[my_deque]]0
Các chức năng đảo ngược và xoay trong Deque
Chúng ta có thể đảo ngược trình tự của dequeuer bằng phương thức reverse[]. Có một phương pháp gọi là rotate[]. Sử dụng phương thức xoay, deque có thể được xoay với số được chỉ định làm đối số. Nếu đối số là dương, nó sẽ xoay sang phải và đối với số âm, nó sẽ xoay sang trái