Python Queue: Ví dụ về Fifo, Lifo trong Python Queue
25/03/2022 07:11
Queue là một vùng chứa chứa dữ liệu. Dữ liệu được nhập trước sẽ bị xóa trước, và do đó một Queue còn được gọi là “Nhập trước xuất trước” (FIFO).
Queue là một vùng chứa chứa dữ liệu. Dữ liệu được nhập trước sẽ bị xóa trước, và do đó một Queue còn được gọi là “Nhập trước xuất trước” (FIFO). Queue có hai đầu phía trước và phía sau. Các mục được nhập từ phía sau và loại bỏ từ phía trước.
Queue Python hoạt động như thế nào?
Có thể dễ dàng so sánh Queue với ví dụ trong thế giới thực là dòng người xếp hàng chờ ở quầy bán vé, người đứng trước sẽ lấy vé trước, tiếp theo là người tiếp theo, v.v. Logic tương tự cũng áp dụng cho cấu trúc dữ liệu Queue.
Đây là một biểu diễn sơ đồ của Queue:
Phía sau đại diện cho điểm mà các mục được chèn vào bên trong Queue. Trong ví dụ này, 7 là giá trị cho điều đó.
Mặt trước đại diện cho điểm mà các mục từ Queue sẽ bị xóa. Nếu bạn xóa một mục khỏi Queue, phần tử đầu tiên bạn sẽ nhận được là 1, như thể hiện trong hình.
Mục 1 là mục đầu tiên được chèn vào Queue, và trong khi xóa nó là mục đầu tiên xuất hiện. Do đó Queue được gọi là FIRST IN FIRST OUT (FIFO)
Trong một Queue, các mục được xóa theo thứ tự và không thể bị xóa ở giữa. Bạn chỉ không thể loại bỏ ngẫu nhiên mục 5 khỏi Queue, để làm điều đó, bạn sẽ phải xóa tất cả các mục trước 5. Các mục trong Queue sẽ bị xóa theo thứ tự chúng được chèn vào.
Các loại Queue trong Python
Chủ yếu có hai loại Queue trong Python:
- First in First out Queue: Đối với điều này, phần tử đi trước sẽ là phần tử xuất hiện đầu tiên.
Để làm việc với FIFO, bạn phải gọi lớp Queue () từ mô-đun Queue. - Cuối cùng trong Queue xuất đầu tiên: Ở đây, phần tử được nhập sau cùng sẽ là phần tử xuất hiện đầu tiên.
Để làm việc với LIFO, bạn phải gọi lớp LifoQueue () từ mô-đun Queue.
Cài đặt Queue Python
Nó rất dễ dàng để làm việc với Queue trong python. Dưới đây là các bước cần làm để sử dụng Queue trong mã của bạn.
Bước 1) Bạn chỉ cần nhập mô-đun Queue, như được hiển thị bên dưới:
import queue
Mô-đun có sẵn theo mặc định với python và bạn không cần cài đặt thêm để bắt đầu làm việc với Queue. Có 2 loại Queue FIFO (xuất trước vào trước) và LIFO (nhập trước xuất sau).
Bước 2) Để làm việc với Queue FIFO, hãy gọi lớp Queue bằng cách sử dụng mô-đun Queue được nhập như hình dưới đây:
import queue
q1 = queue.Queue()
Bước 3) Để làm việc với Queue LIFO, hãy gọi lớp LifoQueue () như hình dưới đây:
import queue
q1 = queue.LifoQueue()
Các phương thức có sẵn bên trong lớp Queue và LifoQueue
Sau đây là các phương thức quan trọng có sẵn bên trong lớp Queue và LifoQueue:
- put (item): Thao tác này sẽ đưa mặt hàng vào bên trong Queue.
- get (): Điều này sẽ trả lại cho bạn một mục từ Queue.
- void (): Nó sẽ trả về true nếu Queue trống và false nếu có các mục.
- qsize (): trả về kích thước của Queue.
- full (): trả về true nếu Queue đầy, ngược lại là false.
Ví dụ về Queue đầu tiên trong đầu tiên
Trong trường hợp ra trước vào trước, phần tử đi trước sẽ là phần tử đi ra đầu tiên.
Thêm và mục trong một Queue
Hãy để chúng tôi làm việc trên một ví dụ để thêm một mục trong Queue. Để bắt đầu làm việc với Queue, trước tiên hãy nhập Queue mô-đun, như thể hiện trong ví dụ bên dưới.
Để thêm một mục, bạn có thể sử dụng phương thức put () như trong ví dụ:
Theo mặc định, kích thước của Queue là vô hạn và bạn có thể thêm bất kỳ số lượng mục nào vào đó. Trong trường hợp bạn muốn xác định kích thước của Queue, bạn có thể thực hiện như sau
import queue
q1 = queue.Queue(5) #The max size is 5.
q1.put(1)
q1.put(2)
q1.put(3)
q1.put(4)
q1.put(5)
print(q1.full()) # will return true.
Output:
True
Xóa một mục khỏi Queue
Để xóa một mục khỏi Queue, bạn có thể sử dụng phương thức được gọi là get (). Phương thức này cho phép các mục từ Queue khi được gọi.
Ví dụ sau đây cho thấy cách xóa một mục khỏi Queue.
import queue
q1 = queue.Queue()
q1.put(10)
item1 = q1.get()
print('The item removed from the queue is ', item1)
Output:
The item removed from the queue is 10
>>> Tham khảo: Khóa học Python
Ví dụ về Queue Cuối cùng trong Đầu ra
Trong trường hợp cuối cùng trong Queue xuất đầu tiên, phần tử được nhập sau cùng sẽ là phần tử xuất hiện đầu tiên.
Để làm việc với LIFO, tức là, cuối cùng trong Queue ra đầu tiên, chúng ta cần nhập mô-đun Queue và sử dụng phương thức LifoQueue ().
Thêm và mục trong một Queue
Ở đây chúng ta sẽ hiểu cách thêm một mục vào Queue LIFO.
import queue
q1 = queue.LifoQueue()
q1.put(10)
Bạn phải sử dụng phương thức put () trên LifoQueue, như trong ví dụ trên.
Xóa một mục khỏi Queue
Để xóa một mục khỏi LIFOqueue, bạn có thể sử dụng phương thức get ().
import queue
q1 = queue.LifoQueue()
q1.put(10)
item1 = q1.get()
print('The item removed from the LIFO queue is ', item1)
Output:
The item removed from the LIFO queue is 10
Thêm nhiều hơn 1 mục trong Queue
Trong các ví dụ trên, chúng ta đã thấy cách thêm một mục và xóa mục cho FIFO và LIFOqueue. Bây giờ chúng ta sẽ xem làm thế nào để thêm nhiều hơn một mục và cũng như loại bỏ nó.
Thêm và mục trong một FIFOqueue
import queue
q1 = queue.Queue()
for i in range(20):
q1.put(i) # this will additem from 0 to 20 to the queue
Remove an item from the FIFOqueue
import queue
q1 = queue.Queue()
for i in range(20):
q1.put(i) # this will additem from 0 to 20 to the queue
while not q1.empty():
print("The value is ", q1.get()) # get() will remove the item from the queue.
Output:
The value is 0
The value is 1
The value is 2
The value is 3
The value is 4
The value is 5
The value is 6
The value is 7
The value is 8
The value is 9
The value is 10
The value is 11
The value is 12
The value is 13
The value is 14
The value is 15
The value is 16
The value is 17
The value is 18
The value is 19
Add and item in a LIFOqueue
import queue
q1 = queue.LifoQueue()
for i in range(20):
q1.put(i) # this will additem from 0 to 20 to the queue
Remove an item from the LIFOqueue
import queue
q1 = queue.LifoQueue()
for i in range(20):
q1.put(i) # this will additem from 0 to 20 to the queue
while not q1.empty():
print("The value is ", q1.get()) # get() will remove the item from the queue.
Output:
The value is 19
The value is 18
The value is 17
The value is 16
The value is 15
The value is 14
The value is 13
The value is 12
The value is 11
The value is 10
The value is 9
The value is 8
The value is 7
The value is 6
The value is 5
The value is 4
The value is 3
The value is 2
The value is 1
The value is 0
Kết: Trên đây là một số kiến thức cơ bản về Queue trong Python mà bạn cần phải nắm rõ khi lập trình Python. Bạn có thể tìm hiểu thêm thông tin về Python tại mục blog của Viện công nghệ thông tin T3H.