Bạn có thể đảo ngược deque trong python không?

Nếu bạn thường xuyên làm việc với các danh sách trong Python, thì bạn có thể biết rằng chúng hoạt động không đủ nhanh khi bạn cần bật và nối thêm các mục ở đầu bên trái của chúng. Mô-đun

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
2 của Python cung cấp một lớp có tên là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 được thiết kế đặc biệt để cung cấp các cách nhanh chóng và tiết kiệm bộ nhớ để nối và bật mục từ cả hai đầu của cấu trúc dữ liệu cơ bản

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 của Python là một hàng đợi hai đầu ở mức độ thấp và được tối ưu hóa cao, rất hữu ích để triển khai các hàng đợi và ngăn xếp thanh lịch, hiệu quả và Pythonic, đây là loại dữ liệu dạng danh sách phổ biến nhất trong điện toán

Trong hướng dẫn này, bạn sẽ học

  • Cách tạo và sử dụng
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    3 của Python trong mã của bạn
  • Cách nối và bật các mục từ cả hai đầu của
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    3 một cách hiệu quả
  • Cách sử dụng
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    3 để xây dựng hàng đợi và ngăn xếp hiệu quả
  • Khi nào nên sử dụng
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    3 thay vì
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    9

Để hiểu rõ hơn về các chủ đề này, bạn nên biết những điều cơ bản khi làm việc với danh sách Python. Bạn cũng sẽ có lợi khi có hiểu biết chung về hàng đợi và ngăn xếp

Cuối cùng, bạn sẽ viết một vài ví dụ hướng dẫn bạn về một số trường hợp sử dụng phổ biến của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3, đây là một trong những kiểu dữ liệu mạnh nhất của Python

Tải xuống miễn phí. Nhận một chương mẫu từ Thủ thuật Python. Cuốn sách chỉ cho bạn các phương pháp hay nhất về Python với các ví dụ đơn giản mà bạn có thể áp dụng ngay lập tức để viết mã Pythonic + đẹp hơn

Bắt đầu với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 của Python

Việc thêm các mục vào và bật chúng từ đầu bên phải của danh sách Python thường là các hoạt động hiệu quả. Nếu bạn sử dụng ký hiệu Big O cho độ phức tạp của thời gian, thì bạn có thể nói rằng chúng là O[1]. Tuy nhiên, khi Python cần phân bổ lại bộ nhớ để phát triển danh sách cơ bản để chấp nhận các mục mới, các thao tác này sẽ chậm hơn và có thể trở thành O[n]

Ngoài ra, các mục nối thêm và bật lên ở đầu bên trái của danh sách Python được biết là hoạt động không hiệu quả với tốc độ O[n]

Vì danh sách Python cung cấp cả hai thao tác với

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
02 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
03, nên chúng có thể sử dụng được dưới dạng ngăn xếp và hàng đợi. Tuy nhiên, các vấn đề về hiệu suất mà bạn đã thấy trước đây có thể ảnh hưởng đáng kể đến hiệu suất tổng thể của các ứng dụng của bạn

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 của Python là kiểu dữ liệu đầu tiên được thêm vào mô-đun
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
2 trong Python 2. 4. Loại dữ liệu này được thiết kế đặc biệt để khắc phục các vấn đề về hiệu quả của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
02 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
03 trong danh sách Python

Deques là các kiểu dữ liệu giống như chuỗi được thiết kế dưới dạng tổng quát hóa ngăn xếp và hàng đợi. Chúng hỗ trợ các hoạt động chắp thêm và bật nhanh, hiệu quả về bộ nhớ ở cả hai đầu của cấu trúc dữ liệu

Ghi chú.

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 được phát âm là “bộ bài. ” Tên viết tắt của hàng đợi hai đầu

Các thao tác append và pop ở cả hai đầu của một đối tượng

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 đều ổn định và hiệu quả như nhau vì deques được triển khai dưới dạng danh sách liên kết kép. Ngoài ra, các thao tác append và pop trên deques cũng an toàn cho luồng và hiệu quả bộ nhớ. Các tính năng này làm cho deques đặc biệt hữu ích để tạo các ngăn xếp và hàng đợi tùy chỉnh trong Python

Deques cũng là một cách để thực hiện nếu bạn cần giữ một danh sách các mục được nhìn thấy lần cuối vì bạn có thể hạn chế độ dài tối đa của deques của mình. Nếu bạn làm như vậy, thì khi một deque đầy, nó sẽ tự động loại bỏ các mục từ một đầu khi bạn thêm các mục mới vào đầu đối diện

Dưới đây là tóm tắt các đặc điểm chính của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3

  • Lưu trữ các mục thuộc bất kỳ loại dữ liệu nào
  • Là kiểu dữ liệu có thể thay đổi
  • Hỗ trợ các hoạt động thành viên với toán tử
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    91
  • Hỗ trợ lập chỉ mục, như trong
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    92
  • Không hỗ trợ cắt lát, như trong
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    93
  • Hỗ trợ các chức năng tích hợp hoạt động theo trình tự và lặp lại, chẳng hạn như
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    94,
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    95,
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    96, v.v.
  • Không hỗ trợ sắp xếp tại chỗ
  • Hỗ trợ lặp lại bình thường và đảo ngược
  • Hỗ trợ ngâm chua với
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    97
  • Đảm bảo thao tác pop và append nhanh, tiết kiệm bộ nhớ và an toàn cho luồng trên cả hai đầu

Tạo phiên bản

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 là một quy trình đơn giản. Bạn chỉ cần nhập
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 từ
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
2 và gọi nó bằng một đối số tùy chọn là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
91

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
0

Nếu bạn khởi tạo

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 mà không cung cấp một đối số
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
91, thì bạn sẽ nhận được một deque trống. Nếu bạn cung cấp và nhập
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
91, thì
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 sẽ khởi tạo phiên bản mới với dữ liệu từ nó. Quá trình khởi tạo đi từ trái sang phải bằng cách sử dụng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
96

Trình khởi tạo

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 nhận hai đối số tùy chọn sau

  1. >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    91 giữ một iterable cung cấp dữ liệu khởi tạo
  2. >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    99 giữ một số nguyên xác định độ dài tối đa của deque

Như đã đề cập trước đây, nếu bạn không cung cấp

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
91, thì bạn sẽ nhận được một deque trống. Nếu bạn cung cấp một giá trị cho
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99, thì deque của bạn sẽ chỉ lưu trữ tối đa
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99 mặt hàng

Cuối cùng, bạn cũng có thể sử dụng các lần lặp không có thứ tự, chẳng hạn như bộ, để khởi tạo deques của mình. Trong những trường hợp đó, bạn sẽ không có đơn đặt hàng được xác định trước cho các mặt hàng trong danh sách cuối cùng

Loại bỏ các quảng cáo

Bật và thêm các mục một cách hiệu quả

Sự khác biệt quan trọng nhất giữa

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9 là cái trước cho phép bạn thực hiện các thao tác nối và bật hiệu quả ở cả hai đầu của chuỗi. Lớp
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 triển khai các phương thức dành riêng cho
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
56 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
57 hoạt động trực tiếp ở đầu bên trái của chuỗi

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
7

Ở đây, bạn sử dụng

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
56 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
57 để loại bỏ và thêm các giá trị tương ứng vào cuối bên trái của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
00. Những phương pháp này dành riêng cho thiết kế của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 và bạn sẽ không tìm thấy chúng trong
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9

Giống như

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 cũng cung cấp các phương thức
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
02 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
03 để hoạt động ở đầu bên phải của chuỗi. Tuy nhiên,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
03 hành xử khác

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]

Ở đây,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
03 loại bỏ và trả về giá trị cuối cùng trong deque. Phương thức này không lấy chỉ mục làm đối số, vì vậy bạn không thể sử dụng nó để xóa các mục tùy ý khỏi deques của mình. Bạn chỉ có thể sử dụng nó để xóa và trả lại mục ngoài cùng bên phải

Như bạn đã biết trước đó,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 được triển khai dưới dạng danh sách liên kết kép. Vì vậy, mọi mục trong một deque nhất định giữ một tham chiếu [con trỏ] đến mục tiếp theo và mục trước đó trong chuỗi

Các danh sách được liên kết kép làm cho các mục nối thêm và bật lên từ một trong hai đầu hoạt động nhẹ nhàng và hiệu quả. Điều đó là có thể bởi vì chỉ cần cập nhật các con trỏ. Kết quả là, cả hai hoạt động có hiệu suất tương tự, O[1]. Chúng cũng có thể dự đoán được hiệu suất khôn ngoan vì không cần phân bổ lại bộ nhớ và di chuyển các mục hiện có để chấp nhận các mục mới

Việc thêm và bật các mục từ đầu bên trái của danh sách Python thông thường yêu cầu chuyển tất cả các mục, cuối cùng là thao tác O[n]. Ngoài ra, việc thêm các mục vào cuối bên phải của danh sách thường yêu cầu Python phân bổ lại bộ nhớ và sao chép các mục hiện tại sang vị trí bộ nhớ mới. Sau đó, nó có thể thêm các mục mới. Quá trình này mất nhiều thời gian hơn để hoàn thành và thao tác chắp thêm chuyển từ O[1] sang O[n]

Xem xét các bài kiểm tra hiệu suất sau đây để nối các mục vào đầu bên trái của chuỗi,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 so với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
0

Trong tập lệnh này,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
42 tính toán thời gian trung bình để thực thi một hàm [
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
43] một số lượng nhất định là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
44. Nếu bạn chạy tập lệnh từ dòng lệnh của mình, thì bạn sẽ nhận được kết quả sau

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9

Trong ví dụ cụ thể này,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
57 trên
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 nhanh hơn nhiều lần so với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
47 trên
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9. Lưu ý rằng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
49 là O[1], có nghĩa là thời gian thực hiện không đổi. Tuy nhiên,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
30 ở đầu bên trái của danh sách là O[n], có nghĩa là thời gian thực hiện phụ thuộc vào số mục cần xử lý

Trong ví dụ này, nếu bạn tăng giá trị của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
31, thì bạn sẽ nhận được số đo thời gian cao hơn cho
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
30 nhưng kết quả ổn định [không đổi] cho
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
49. Nếu bạn muốn thử kiểm tra hiệu suất tương tự trên các thao tác bật lên cho cả deques và list, thì bạn có thể mở rộng khối bài tập bên dưới và so sánh kết quả của mình với Real Python sau khi hoàn thành

Tập thể dục. Kiểm tra hiệu suất của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
34 so với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
35Hiển thị/Ẩn

Như một bài tập, bạn có thể sửa đổi tập lệnh ở trên theo thời gian của các hoạt động

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
34 so với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
35 và ước tính hiệu suất của chúng

Giải pháp. Kiểm tra hiệu suất của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
34 so với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
35Hiển thị/Ẩn

Đây là một tập lệnh kiểm tra hiệu suất của các hoạt động của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
34 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
35

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9

Nếu bạn chạy tập lệnh này trên máy tính của mình, thì bạn sẽ nhận được kết quả tương tự như sau

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
5

Một lần nữa,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 nhanh hơn
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9 khi loại bỏ các mục từ đầu bên trái của chuỗi cơ bản. Hãy thử thay đổi giá trị của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
31 và xem điều gì sẽ xảy ra

Kiểu dữ liệu

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 được thiết kế để đảm bảo các thao tác append và pop hiệu quả ở cả hai đầu của chuỗi. Đó là lý tưởng để tiếp cận các vấn đề yêu cầu triển khai cấu trúc dữ liệu hàng đợi và ngăn xếp trong Python

Truy cập các mục ngẫu nhiên trong một
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 của Python trả về các chuỗi có thể thay đổi hoạt động khá giống với danh sách. Bên cạnh việc cho phép bạn nối và bật các mục từ đầu của chúng một cách hiệu quả, deques cung cấp một nhóm các phương thức giống như danh sách và các hoạt động giống như trình tự khác để làm việc với các mục ở các vị trí tùy ý. Dưới đây là một số trong số họ

Tùy chọnMô tả

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
708Chèn một mục
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
709 vào một deque tại chỉ mục
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
710.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
711Xóa lần xuất hiện đầu tiên của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
709, tăng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
713 nếu
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
709 không tồn tại.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
92Truy xuất mục tại chỉ mục
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
710 từ deque.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
717Xóa mục tại chỉ mục
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
710 khỏi deque

Bạn có thể sử dụng các phương pháp và kỹ thuật này để làm việc với các mục ở bất kỳ vị trí nào bên trong đối tượng

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3. Đây là cách để làm điều đó

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
0

Tại đây, trước tiên bạn chèn

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
720 vào
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
721 tại vị trí
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
722. Sau đó, bạn xóa
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
723 khỏi deque bằng cách sử dụng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
724. Deques cũng cho phép lập chỉ mục để truy cập các mục mà bạn sử dụng ở đây để truy cập
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
725 tại chỉ mục
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
726. Cuối cùng, bạn có thể sử dụng từ khóa
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
727 để xóa mọi mục hiện có khỏi deque. Lưu ý rằng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
724 cho phép bạn xóa các mục theo giá trị, trong khi
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
727 xóa các mục theo chỉ mục

Mặc dù các đối tượng

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 hỗ trợ lập chỉ mục nhưng chúng không hỗ trợ cắt. Nói cách khác, bạn không thể trích xuất một lát cắt từ một deque hiện có bằng cách sử dụng cú pháp cắt lát,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
731, như bạn làm với một danh sách thông thường

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
4

Deques hỗ trợ lập chỉ mục, nhưng thật thú vị, chúng không hỗ trợ cắt. Khi bạn cố gắng lấy một lát từ deque, bạn sẽ nhận được một

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
732. Nói chung, thực hiện thao tác cắt trên danh sách được liên kết sẽ không hiệu quả, vì vậy thao tác này không khả dụng

Đến đây, bạn đã thấy rằng

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 khá giống với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9. Tuy nhiên, trong khi
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9 dựa trên mảng, thì
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 dựa trên danh sách liên kết kép

Có một chi phí ẩn đằng sau việc

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 được triển khai dưới dạng danh sách liên kết kép. truy cập, chèn và xóa các mục tùy ý không hoạt động hiệu quả. Để thực hiện chúng, trình thông dịch phải lặp qua deque cho đến khi đến mục mong muốn. Vì vậy, chúng là các phép toán O[n] thay vì O[1]

Đây là một tập lệnh cho biết cách deques và list hoạt động khi làm việc với các mục tùy ý

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3

Tập lệnh này lần lượt chèn, xóa và truy cập các mục ở giữa deque và danh sách. Nếu bạn chạy tập lệnh, thì bạn sẽ nhận được kết quả giống như sau

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
70

Deques không phải là cấu trúc dữ liệu truy cập ngẫu nhiên như danh sách. Do đó, việc truy cập các phần tử từ giữa deque sẽ kém hiệu quả hơn so với thực hiện điều tương tự trên danh sách. Điểm nổi bật chính ở đây là deques không phải lúc nào cũng hiệu quả hơn danh sách

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 của Python được tối ưu hóa cho các hoạt động ở hai đầu của chuỗi, vì vậy chúng luôn tốt hơn các danh sách về mặt này. Mặt khác, danh sách tốt hơn cho các hoạt động truy cập ngẫu nhiên và độ dài cố định. Dưới đây là một số khác biệt giữa deques và list về hiệu suất

Thao tác

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
9Truy cập các mục tùy ý thông qua lập chỉ mụcO[n]O[1]Nhập và nối các mục ở đầu bên tráiO[1]O[n]Nhập và nối các mục ở đầu bên phảiO[1]O[1] + phân bổ lạiChèn và xóa các mục ở giữaO

Trong trường hợp danh sách,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
02 có hiệu suất khấu hao bị ảnh hưởng bởi việc phân bổ lại bộ nhớ khi trình thông dịch cần phát triển danh sách để chấp nhận các mục mới. Thao tác này yêu cầu sao chép tất cả các mục hiện tại vào vị trí bộ nhớ mới, điều này ảnh hưởng đáng kể đến hiệu suất

Bản tóm tắt này có thể giúp bạn chọn loại dữ liệu thích hợp cho vấn đề hiện tại. Tuy nhiên, hãy đảm bảo cấu hình mã của bạn trước khi chuyển từ danh sách sang deques. Cả hai đều có điểm mạnh về hiệu suất

Loại bỏ các quảng cáo

Xây dựng hàng đợi hiệu quả với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3

Như bạn đã biết,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 được triển khai dưới dạng hàng đợi hai đầu cung cấp sự khái quát hóa về ngăn xếp và hàng đợi. Trong phần này, bạn sẽ học cách sử dụng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 để triển khai các kiểu dữ liệu trừu tượng hàng đợi [ADT] của riêng bạn ở cấp độ thấp theo cách đơn giản, hiệu quả và Pythonic

Ghi chú. Trong thư viện chuẩn của Python, bạn sẽ tìm thấy

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
745. Mô-đun này triển khai hàng đợi nhiều nhà sản xuất, nhiều người tiêu dùng cho phép bạn trao đổi thông tin giữa nhiều luồng một cách an toàn

Nếu bạn đang làm việc với hàng đợi, thì hãy ưu tiên sử dụng các trừu tượng cấp cao đó hơn

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 trừ khi bạn đang triển khai cấu trúc dữ liệu của riêng mình

Hàng đợi là tập hợp các mục. Bạn có thể sửa đổi hàng đợi bằng cách thêm các mục ở một đầu và xóa các mục ở đầu đối diện

Hàng đợi quản lý các mặt hàng của họ theo kiểu Nhập trước/Xuất trước [FIFO]. Chúng hoạt động như một đường ống nơi bạn đẩy các mục mới vào một đầu của đường ống và đẩy các mục cũ ra khỏi đầu kia. Thêm một mục vào một đầu của hàng đợi được gọi là hoạt động enqueue. Loại bỏ một mục từ đầu bên kia được gọi là dequeue

Để hiểu rõ hơn về hàng đợi, hãy lấy nhà hàng yêu thích của bạn làm ví dụ. Nhà hàng có một hàng dài người đang chờ đặt bàn để gọi món ăn của họ. Thông thường, người đến cuối cùng sẽ đứng ở cuối hàng đợi. Người ở đầu hàng sẽ rời khỏi đó ngay khi có bàn

Đây là cách bạn có thể mô phỏng quy trình bằng cách sử dụng đối tượng

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 cơ bản

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
71

Ở đây, trước tiên bạn tạo một đối tượng

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 trống để đại diện cho hàng người đến nhà hàng. Để liệt kê một người, bạn sử dụng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
02, thêm các mục riêng lẻ vào cuối bên phải. Để dequeue một người, bạn sử dụng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
56, loại bỏ và trả lại các mục riêng lẻ ở đầu bên trái của deque

Mát mẻ. Mô phỏng hàng đợi của bạn hoạt động. Tuy nhiên, vì

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 là một khái quát hóa nên API của nó không khớp với API hàng đợi thông thường. Ví dụ: thay vì
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
752, bạn có
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
02. Bạn cũng có
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
56 thay vì
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
755. Ngoài ra,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 cung cấp một số hoạt động khác có thể không phù hợp với nhu cầu cụ thể của bạn

Tin tốt là bạn có thể tạo các lớp hàng đợi tùy chỉnh với chức năng bạn cần và không có gì khác. Để thực hiện việc này, bạn có thể sử dụng nội bộ deque để lưu trữ dữ liệu và cung cấp chức năng mong muốn trong hàng đợi tùy chỉnh của mình. Bạn có thể coi nó như một triển khai của mẫu thiết kế bộ điều hợp, trong đó bạn chuyển đổi giao diện của deque thành thứ gì đó trông giống giao diện hàng đợi hơn

Ví dụ: giả sử bạn cần một loại dữ liệu trừu tượng hàng đợi tùy chỉnh chỉ cung cấp các tính năng sau

  • vật phẩm đang xếp hàng
  • xếp hàng
  • Trả về độ dài của hàng đợi
  • Hỗ trợ kiểm tra thành viên
  • Hỗ trợ lặp lại bình thường và đảo ngược
  • Cung cấp một biểu diễn chuỗi thân thiện với người dùng

Trong trường hợp này, bạn có thể viết một lớp

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
757 giống như sau

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
72

Ở đây,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
758 giữ một đối tượng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 cho phép bạn lưu trữ và thao tác các mục trong hàng đợi.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
757 thực hiện
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
752 sử dụng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
96 để thêm các mục vào cuối hàng đợi. Nó cũng triển khai
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
755 với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
34 để xóa các mục khỏi đầu hàng đợi một cách hiệu quả

Các phương pháp đặc biệt hỗ trợ các tính năng sau

MethodSupport

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
765Độ dài với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
94____4767Kiểm tra tư cách thành viên với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
91
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
769Lặp thông thường
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
770Lặp ngược
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
771Biểu diễn chuỗi

Tốt nhất,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
771 sẽ trả về một chuỗi đại diện cho một biểu thức Python hợp lệ. Biểu thức này sẽ cho phép bạn tạo lại đối tượng một cách rõ ràng với cùng một giá trị

Tuy nhiên, trong ví dụ trên, mục đích là sử dụng giá trị trả về của phương thức để hiển thị đối tượng một cách duyên dáng trên trình bao tương tác. Bạn có thể tạo khả năng xây dựng các phiên bản

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
757 từ biểu diễn chuỗi cụ thể này bằng cách chấp nhận một lần khởi tạo có thể lặp lại làm đối số cho
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
774 và xây dựng các phiên bản từ nó

Với những bổ sung cuối cùng này, lớp

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
757 của bạn đã hoàn tất. Để sử dụng lớp này trong mã của bạn, bạn có thể làm như sau

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
73

Như một bài tập, bạn có thể kiểm tra các tính năng còn lại và triển khai các tính năng khác, chẳng hạn như hỗ trợ kiểm tra tính bằng nhau, xóa và truy cập các mục ngẫu nhiên, v.v. Đi trước và cung cấp cho nó một thử

Loại bỏ các quảng cáo

Khám phá các tính năng khác của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3

Ngoài các tính năng bạn đã thấy cho đến nay,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 còn cung cấp các phương thức và thuộc tính khác dành riêng cho thiết kế bên trong của chúng. Họ thêm các chức năng mới và hữu ích cho loại dữ liệu linh hoạt này

Trong phần này, bạn sẽ tìm hiểu về các phương thức và thuộc tính khác mà deques cung cấp, cách chúng hoạt động và cách sử dụng chúng trong mã của bạn

Giới hạn số lượng mục tối đa.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99

Một trong những tính năng hữu ích nhất của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 là khả năng chỉ định độ dài tối đa của một deque nhất định bằng cách sử dụng đối số
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99 khi bạn khởi tạo lớp

Nếu bạn cung cấp một giá trị cho

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99, thì deque của bạn sẽ chỉ lưu trữ tối đa
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99 mặt hàng. Trong trường hợp này, bạn có một giới hạn deque. Khi một deque giới hạn đã đầy với số lượng mục đã chỉ định, việc thêm một mục mới ở một trong hai đầu sẽ tự động xóa và loại bỏ mục ở đầu đối diện

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
74

Nếu số lượng mục trong lần lặp đầu vào lớn hơn

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99, thì
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 sẽ loại bỏ các mục ngoài cùng bên trái [ví dụ
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
785]. Khi deque đầy, việc thêm một mục vào bất kỳ đầu nào sẽ tự động xóa mục ở đầu kia

Lưu ý rằng nếu bạn không chỉ định giá trị cho

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99, thì giá trị đó sẽ mặc định là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
787 và deque có thể phát triển thành số lượng mục tùy ý

Việc có tùy chọn hạn chế số lượng mục tối đa cho phép bạn sử dụng deques để theo dõi các phần tử mới nhất trong một chuỗi đối tượng hoặc sự kiện nhất định. Ví dụ: bạn có thể theo dõi năm giao dịch gần đây nhất trong tài khoản ngân hàng, mười tệp văn bản mở gần đây nhất trong trình chỉnh sửa, năm trang cuối cùng trong trình duyệt, v.v.

Lưu ý rằng

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99 có sẵn dưới dạng thuộc tính chỉ đọc trong deques của bạn, cho phép bạn kiểm tra xem deque đã đầy chưa, chẳng hạn như trong
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
789

Cuối cùng, bạn có thể đặt

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99 thành bất kỳ số nguyên dương nào đại diện cho số lượng mục tối đa bạn muốn lưu trữ trong một deque cụ thể. Nếu bạn cung cấp một giá trị âm cho
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99, thì bạn sẽ nhận được một
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
713

Xoay các mục.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
793

Một tính năng thú vị khác của deques là khả năng xoay các phần tử của chúng bằng cách gọi

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
793 trên một deque không trống. Phương thức này lấy một số nguyên
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
795 làm đối số và xoay các mục
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
795 sang phải. Nói cách khác, nó di chuyển
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
795 mục từ đầu bên phải sang đầu bên trái theo hình tròn

Giá trị mặc định của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
795 là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
726. Nếu bạn cung cấp giá trị âm cho
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
795, thì vòng quay sẽ sang trái

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
75

Trong các ví dụ này, bạn xoay

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
01 nhiều lần bằng cách sử dụng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
793 với các giá trị khác nhau của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
795. Nếu bạn gọi
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
793 mà không có đối số, thì nó sẽ dựa vào giá trị mặc định của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
795 và xoay vị trí deque
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
726 sang phải. Gọi phương thức có giá trị âm
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
795 cho phép bạn xoay các mục sang trái

Thêm một số mục cùng một lúc.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
08

Giống như các danh sách thông thường, deques cung cấp một phương thức

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
09, cho phép bạn thêm một số mục vào cuối bên phải của deque bằng cách sử dụng một đối số
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
91. Ngoài ra, deques có một phương thức gọi là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
11, lấy một đối số là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
91 và thêm các mục của nó vào đầu bên trái của deque đích trong một lần

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
76

Gọi

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
08 với một
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
91 mở rộng deque mục tiêu sang trái. Bên trong,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
08 thực hiện một loạt các hoạt động
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
57 riêng lẻ xử lý đầu vào có thể lặp lại từ trái sang phải. Điều này kết thúc việc thêm các mục theo thứ tự ngược lại vào đầu bên trái của deque mục tiêu

Loại bỏ các quảng cáo

Sử dụng các tính năng giống như trình tự của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3

Vì deques là các trình tự có thể thay đổi, nên chúng thực hiện hầu hết tất cả các phương thức và thao tác phổ biến đối với trình tự và trình tự có thể thay đổi. Cho đến giờ, bạn đã học về một số phương pháp và hoạt động này, chẳng hạn như

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
47, lập chỉ mục, kiểm tra tư cách thành viên, v.v.

Dưới đây là một vài ví dụ về các hành động khác mà bạn có thể thực hiện trên đối tượng

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
77

Bạn có thể sử dụng toán tử cộng [

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
20] để nối hai deques hiện có. Mặt khác, toán tử nhân [
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
21] trả về một deque mới tương đương với việc lặp lại deque ban đầu bao nhiêu lần tùy ý

Về các phương pháp trình tự khác, bảng sau đây cung cấp tóm tắt

MethodDescription

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
22Xóa tất cả các phần tử khỏi deque.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
23Tạo bản sao nông của deque.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
24Đếm số lần
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
709 xuất hiện trong deque.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
26Trả lại vị trí của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
709 trong deque.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
28Đảo ngược các phần tử của deque tại chỗ và sau đó quay lại
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
787

Ở đây,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
30 cũng có thể nhận hai đối số tùy chọn.
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
31 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
32. Chúng cho phép bạn hạn chế tìm kiếm đối với những mục đó tại hoặc sau
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
31 và trước
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
32. Phương pháp tăng một
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
713 nếu
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
709 không xuất hiện trong deque hiện tại

Không giống như danh sách, deques không bao gồm phương thức

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
37 để sắp xếp chuỗi tại chỗ. Điều này là do việc sắp xếp một danh sách được liên kết sẽ là một hoạt động không hiệu quả. Nếu bạn cần sắp xếp một deque, thì bạn vẫn có thể sử dụng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
95

Đưa
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 của Python vào hoạt động

Bạn có thể sử dụng deques trong một số trường hợp sử dụng hợp lý, chẳng hạn như để triển khai hàng đợi, ngăn xếp và bộ đệm vòng. Bạn cũng có thể sử dụng chúng để duy trì lịch sử hoàn tác, xử lý các yêu cầu đến một dịch vụ web, giữ danh sách các tệp và trang web được mở gần đây, trao đổi dữ liệu an toàn giữa nhiều luồng, v.v.

Trong các phần sau, bạn sẽ viết mã một số ví dụ nhỏ giúp bạn hiểu rõ hơn về cách sử dụng deques trong mã của mình

Giữ Lịch sử Trang

Có một

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99 để hạn chế số lượng tối đa các mục làm cho
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 phù hợp để giải quyết một số vấn đề. Ví dụ: giả sử bạn đang xây dựng một ứng dụng thu thập dữ liệu từ các công cụ tìm kiếm và các trang mạng xã hội. Tại một số thời điểm, bạn cần theo dõi ba trang web cuối cùng mà ứng dụng của bạn đã yêu cầu dữ liệu từ đó

Để giải quyết vấn đề này, bạn có thể sử dụng deque với

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99 của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
43

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
78

Trong ví dụ này,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
44 giữ danh sách ba trang web cuối cùng mà ứng dụng của bạn đã truy cập. Khi
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
44 đầy, việc thêm một trang web mới vào cuối deque sẽ tự động loại bỏ trang web ở đầu đối diện. Hành vi này giúp danh sách của bạn được cập nhật với ba trang web cuối cùng mà bạn đã sử dụng

Lưu ý rằng bạn có thể đặt

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99 thành bất kỳ số nguyên dương nào đại diện cho số lượng mục cần lưu trữ trong kho hàng hiện có. Ví dụ: nếu bạn muốn giữ danh sách mười trang web, thì bạn có thể đặt
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99 thành
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
48

Chia sẻ dữ liệu giữa các chủ đề

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 của Python cũng hữu ích khi bạn mã hóa các ứng dụng đa luồng, như được mô tả bởi Raymond Hettinger, nhà phát triển Python cốt lõi và người tạo ra
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 và mô-đun
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
2

Các hoạt động của deque's

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
02,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
57,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
03,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
56 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
56 là luồng an toàn trong CPython. [Nguồn]

Do đó, bạn có thể thêm và xóa dữ liệu một cách an toàn từ cả hai đầu của deque cùng lúc từ các luồng riêng biệt mà không có nguy cơ hỏng dữ liệu hoặc các sự cố liên quan khác

Để thử cách thức hoạt động của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 trong một ứng dụng đa luồng, hãy kích hoạt trình chỉnh sửa mã yêu thích của bạn, tạo một tập lệnh mới có tên là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
58 và thêm đoạn mã sau vào đó

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
79

Ở đây,

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
59 lấy một
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
745 và một
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
61 làm đối số. Sau đó, nó sử dụng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
62 trong vòng lặp
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
63 để liên tục tạo ra các số ngẫu nhiên và lưu trữ chúng trong một deque toàn cục có tên là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
64. Vì việc thêm các mục vào deque là một hoạt động an toàn cho luồng, nên bạn không cần sử dụng khóa để bảo vệ dữ liệu được chia sẻ khỏi các luồng khác

Hàm trợ giúp

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
65 mô phỏng rằng cả
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
59 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
67 đều đại diện cho các hoạt động chạy dài. Nó trả về một giá trị thời gian chờ ngẫu nhiên giữa một phạm vi giây nhất định,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
68 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
69

Trong

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
67, bạn gọi
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
56 bên trong một vòng lặp để truy xuất và xóa dữ liệu một cách có hệ thống khỏi
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
64. Bạn kết thúc cuộc gọi tới
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
56 trong một câu lệnh
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
74 …
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
75 để xử lý những trường hợp trong đó hàng đợi chung trống

Lưu ý rằng trong khi bạn đã xác định

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
64 trong không gian tên chung, bạn truy cập nó thông qua các biến cục bộ bên trong
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
59 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
67. Truy cập trực tiếp vào biến toàn cục sẽ gặp nhiều vấn đề hơn và chắc chắn không phải là cách thực hành tốt nhất

Hai dòng cuối cùng trong tập lệnh tạo và bắt đầu các luồng riêng biệt để thực thi đồng thời

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
59 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
67. Nếu bạn chạy tập lệnh từ dòng lệnh của mình, thì bạn sẽ nhận được kết quả tương tự như sau

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
0

Luồng sản xuất thêm số vào đầu bên phải của deque được chia sẻ, trong khi luồng người tiêu dùng sử dụng các số từ đầu bên trái. Để làm gián đoạn quá trình thực thi tập lệnh, bạn có thể nhấn Ctrl + C trên .

Cuối cùng, bạn có thể chơi một chút với khoảng thời gian bên trong

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
59 và
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
67. Thay đổi các giá trị bạn chuyển đến
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
65 và xem chương trình hoạt động như thế nào khi nhà sản xuất chậm hơn người tiêu dùng và ngược lại

Loại bỏ các quảng cáo

Thi đua lệnh
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
84

Ví dụ cuối cùng mà bạn sẽ viết mã ở đây mô phỏng lệnh

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
84, có sẵn trên các hệ điều hành tương tự Unix và Unix. Lệnh chấp nhận đường dẫn tệp tại dòng lệnh và in mười dòng cuối cùng của tệp đó ra đầu ra tiêu chuẩn của hệ thống. Bạn có thể điều chỉnh số dòng bạn cần
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
84 để in với tùy chọn
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
87,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
88

Đây là một hàm Python nhỏ mô phỏng chức năng cốt lõi của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
84

>>>

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
1

Ở đây, bạn xác định

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
90. Đối số đầu tiên,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
91, giữ đường dẫn đến tệp đích dưới dạng một chuỗi. Đối số thứ hai,
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
92, biểu thị số dòng bạn muốn truy xuất từ ​​cuối tệp đích. Lưu ý rằng
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
92 mặc định là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
48 để mô phỏng hành vi mặc định của
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
84

Ghi chú. Ý tưởng ban đầu cho ví dụ này đến từ tài liệu Python trên

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3. Xem phần về công thức nấu ăn
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 để biết thêm ví dụ

Deque trong dòng được đánh dấu chỉ có thể lưu trữ tối đa số mục bạn chuyển đến

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
92. Điều này đảm bảo rằng bạn nhận được số dòng mong muốn từ cuối tệp đầu vào

Như bạn đã thấy trước đây, khi bạn tạo một bounded deque và khởi tạo nó với một iterable chứa nhiều mục hơn mức cho phép [

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99], hàm tạo
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 loại bỏ tất cả các mục ngoài cùng bên trái trong đầu vào. Do đó, bạn kết thúc với
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
99 dòng cuối cùng của tệp đích

Phần kết luận

Hàng đợi và ngăn xếp là các kiểu dữ liệu trừu tượng thường được sử dụng trong lập trình. Chúng thường yêu cầu các hoạt động pop và append hiệu quả ở hai đầu của cấu trúc dữ liệu cơ bản. Mô-đun

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
2 của Python cung cấp một loại dữ liệu có tên là
>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 được thiết kế đặc biệt cho các thao tác nối và bật nhanh và tiết kiệm bộ nhớ ở cả hai đầu

Với

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3, bạn có thể viết mã hàng đợi và ngăn xếp của riêng mình ở cấp độ thấp theo cách thanh lịch, hiệu quả và Pythonic

Trong hướng dẫn này, bạn đã học cách

  • Tạo và sử dụng
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    3 của Python trong mã của bạn
  • Nối và bật các mục từ cả hai đầu của chuỗi một cách hiệu quả với
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    3
  • Sử dụng
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    3 để xây dựng hàng đợi và ngăn xếp hiệu quả trong Python
  • Quyết định khi nào nên sử dụng
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    3 thay vì
    >>> from collections import deque
    
    >>> numbers = deque[[1, 2, 3, 4]]
    >>> numbers.pop[]
    4
    
    >>> numbers.pop[0]
    Traceback [most recent call last]:
      File "", line 1, in 
    TypeError: pop[] takes no arguments [1 given]
    
    9

Trong hướng dẫn này, bạn cũng đã mã hóa một vài ví dụ giúp bạn tiếp cận một số trường hợp sử dụng phổ biến của

>>> from collections import deque

>>> numbers = deque[[1, 2, 3, 4]]
>>> numbers.pop[]
4

>>> numbers.pop[0]
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: pop[] takes no arguments [1 given]
3 trong Python

Đánh dấu là đã hoàn thành

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Leodanis Pozo Ramos

Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác

» Tìm hiểu thêm về Leodanis

Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Aldren

Bartosz

Joanna

Gia-cốp

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Có lệnh đảo ngược trong Python không?

Không có hàm tích hợp để đảo ngược chuỗi trong Python . Cách nhanh nhất [và dễ nhất?] là sử dụng một lát cắt bước lùi, -1.

Bạn có thể lặp qua deque trong Python không?

Không giống như một số bộ sưu tập khác, deque hoàn toàn có thể lặp lại . Điều này có nghĩa là bạn có thể lấy danh sách các mục bằng cách sử dụng vòng lặp for bất cứ khi nào cần thiết.

Deque được triển khai như thế nào trong Python?

Để triển khai deque trong python bằng danh sách liên kết, chúng ta sẽ phải thực hiện thao tác chèn và xóa ở cả hai đầu của danh sách liên kết. Ngoài ra, chúng tôi sẽ phải ghi lại độ dài của deque. Để tạo một danh sách liên kết, chúng tôi sẽ xác định một nút sẽ có trường dữ liệu và trường tiếp theo

Chủ Đề