deque
Gunakan baris gilir dua hujung yang pantas
deque ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 4 pelajaran.
Apakah itu baris gilir dua hujung
deque (disebut “dek”) ialah baris gilir dua hujung daripada modul collections. Ia menyokong penambahan dan pengeluaran item dengan pantas dari kedua-dua hujung.
Importnya dengan from collections import deque.
from collections import deque
d = deque([1, 2, 3])
print(d)Mengapa tidak gunakan senarai sahaja
Senarai menjadi perlahan apabila Anda memasukkan atau mengalih keluar item di bahagian hadapan kerana setiap elemen perlu dialihkan. deque melaksanakan operasi di bahagian hadapan dalam masa malar, jadi ia sesuai untuk baris gilir.
from collections import deque
d = deque(['b', 'c'])
d.appendleft('a')
print(d)Menambah pada kedua-dua hujung
Gunakan .append() untuk menambah pada sebelah kanan dan .appendleft() untuk menambah pada sebelah kiri.
from collections import deque
d = deque()
d.append(1)
d.append(2)
d.appendleft(0)
print(d)Mengeluarkan dari kedua-dua hujung
.pop() membuang dan mengembalikan elemen paling kanan; .popleft() membuang elemen paling kiri. Kedua-duanya pantas.
from collections import deque
d = deque([10, 20, 30])
print(d.pop())
print(d.popleft())
print(d)Baris gilir mudah (FIFO)
Untuk tingkah laku masuk dahulu, keluar dahulu, tambah pada sebelah kanan dan gunakan popleft pada sebelah kiri. Elemen keluar mengikut susunan ketibaannya.
from collections import deque
queue = deque()
queue.append('first')
queue.append('second')
print(queue.popleft())
print(queue.popleft())Deque terhad dengan maxlen
Berikan nilai maxlen untuk mengehadkan saiz. Apabila penuh, penambahan pada satu hujung akan membuang satu elemen dari hujung yang lain secara automatik — sesuai untuk menyimpan sejarah terkini.
from collections import deque
recent = deque(maxlen=3)
for n in [1, 2, 3, 4, 5]:
recent.append(n)
print(recent)Memutarkan elemen
.rotate(n) mengalihkan elemen ke kanan sebanyak n langkah; nilai n negatif memutarkannya ke kiri. Elemen akan berpusing semula ke hujung yang bertentangan.
from collections import deque
d = deque([1, 2, 3, 4, 5])
d.rotate(2)
print(d)
d.rotate(-1)
print(d)Memanjangkan secara pukal
.extend() menambah banyak elemen pada sebelah kanan dan .extendleft() menambahnya pada sebelah kiri. Perhatikan bahawa extendleft menterbalikkan susunan elemen yang anda tambah.
from collections import deque
d = deque([3])
d.extend([4, 5])
d.extendleft([2, 1])
print(d)Pengindeksan dan panjang
Deque menyokong pengindeksan seperti senarai dan berfungsi dengan len(). Mengakses bahagian tengah lebih perlahan daripada mengakses hujung, jadi utamakan operasi pada hujung.
from collections import deque
d = deque(['a', 'b', 'c'])
print(d[0])
print(d[-1])
print(len(d))Mengosongkan dan menterbalikkan
.reverse() menterbalikkan deque di tempatnya, manakala .clear() mengosongkannya. Kedua-duanya mengubah deque secara langsung.
from collections import deque
d = deque([1, 2, 3])
d.reverse()
print(d)
d.clear()
print(d)Mengira kemunculan
Seperti senarai, deque mempunyai .count() untuk mengira kekerapan sesuatu nilai muncul.
from collections import deque
d = deque([1, 2, 2, 3, 2])
print(d.count(2))Semakan pantas
Anda membina baris gilir FIFO dengan deque. Pasangan kaedah manakah yang memberikan susunan masuk dahulu, keluar dahulu yang betul?
Imbas kembali: deque
Anda telah mempelajari bahawa deque:
- Menyokong
append/poppantas pada kedua-dua hujung, tidak seperti senarai. - Mempunyai
appendleftdanpopleftuntuk sebelah kiri. - Boleh dihadkan dengan
maxlenuntuk menyimpan hanya elemen terkini. - Menawarkan
rotate,extend,reversedancountuntuk operasi gaya baris gilir.
from collections import deque
q = deque(maxlen=2)
for x in ['a', 'b', 'c']:
q.append(x)
print(q)Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 76
- Pelajaran
- 320
Soalan Lazim
Adakah pelajaran “deque” percuma?
Ya — teks penuh “deque” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “deque”?
Gunakan baris gilir dua hujung yang pantas Anda berlatih Python Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Python Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Python Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “deque” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.