deque
Gunakan antrean dua arah yang cepat
deque adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Apa itu antrean berujung ganda?
deque (dibaca 'dek') adalah antrean berujung ganda dari modul collections. Struktur ini mendukung penambahan dan penghapusan cepat dari kedua ujung.
Impor dengan from collections import deque.
from collections import deque
d = deque([1, 2, 3])
print(d)Mengapa tidak cukup menggunakan daftar?
Daftar lambat saat Anda menyisipkan atau menghapus elemen di bagian depan karena setiap elemen harus bergeser. Antrean berujung ganda melakukan operasi di bagian depan dalam waktu konstan, sehingga ideal untuk antrean.
from collections import deque
d = deque(['b', 'c'])
d.appendleft('a')
print(d)Menambahkan di kedua ujung
Gunakan .append() untuk menambahkan elemen di sisi kanan dan .appendleft() untuk menambahkannya di sisi kiri.
from collections import deque
d = deque()
d.append(1)
d.append(2)
d.appendleft(0)
print(d)Menghapus dari kedua ujung
.pop() menghapus dan mengembalikan elemen paling kanan; .popleft() menghapus elemen paling kiri. Keduanya cepat.
from collections import deque
d = deque([10, 20, 30])
print(d.pop())
print(d.popleft())
print(d)Antrean sederhana (FIFO)
Untuk perilaku masuk pertama, keluar pertama, tambahkan elemen di sisi kanan dan gunakan popleft dari sisi kiri. Elemen keluar sesuai urutan kedatangannya.
from collections import deque
queue = deque()
queue.append('first')
queue.append('second')
print(queue.popleft())
print(queue.popleft())Deque berbatas dengan maxlen
Berikan maxlen untuk membatasi ukuran. Saat penuh, penambahan elemen di satu ujung secara otomatis membuang elemen dari ujung lainnya—sangat berguna untuk menyimpan riwayat terbaru.
from collections import deque
recent = deque(maxlen=3)
for n in [1, 2, 3, 4, 5]:
recent.append(n)
print(recent)Memutar elemen
.rotate(n) menggeser elemen ke kanan sebanyak n langkah; nilai n negatif memutarnya ke kiri. Elemen akan berputar kembali ke ujung lainnya.
from collections import deque
d = deque([1, 2, 3, 4, 5])
d.rotate(2)
print(d)
d.rotate(-1)
print(d)Memperluas secara massal
.extend() menambahkan banyak elemen ke sisi kanan dan .extendleft() menambahkannya ke sisi kiri. Perhatikan bahwa extendleft membalik urutan elemen yang Anda tambahkan.
from collections import deque
d = deque([3])
d.extend([4, 5])
d.extendleft([2, 1])
print(d)Pengindeksan dan panjang
Deque mendukung pengindeksan seperti daftar dan dapat digunakan dengan len(). Mengakses bagian tengah lebih lambat daripada mengakses kedua ujung, jadi sebaiknya gunakan operasi pada ujung.
from collections import deque
d = deque(['a', 'b', 'c'])
print(d[0])
print(d[-1])
print(len(d))Mengosongkan dan membalik urutan
.reverse() membalik urutan deque secara langsung, sedangkan .clear() mengosongkannya. Keduanya mengubah deque secara langsung.
from collections import deque
d = deque([1, 2, 3])
d.reverse()
print(d)
d.clear()
print(d)Menghitung kemunculan
Seperti daftar, deque memiliki .count() untuk menghitung berapa kali suatu nilai muncul.
from collections import deque
d = deque([1, 2, 2, 3, 2])
print(d.count(2))Pemeriksaan cepat
Anda membuat antrean FIFO dengan deque. Pasangan metode mana yang menghasilkan urutan masuk pertama, keluar pertama yang benar?
Ringkasan: deque
Anda telah mempelajari bahwa deque:
- Mendukung
append/popyang cepat di kedua ujung, tidak seperti daftar. - Memiliki
appendleftdanpopleftuntuk sisi kiri. - Dapat dibatasi dengan
maxlenagar hanya menyimpan elemen terbaru. - Menyediakan
rotate,extend,reverse, dancountuntuk pekerjaan bergaya antrean.
from collections import deque
q = deque(maxlen=2)
for x in ['a', 'b', 'c']:
q.append(x)
print(q)Pertanyaan yang Sering Diajukan
Apakah pelajaran “deque” gratis?
Ya — teks lengkap “deque” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “deque”?
Gunakan antrean dua arah yang cepat Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “deque” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.