Deque Dalam Python – Tutorial Dengan Contoh

Deque Dalam Python – Tutorial Dengan Contoh

Jika anda seorang pembangun Python, anda mungkin pernah mendengar tentang deque, atau "baris bersambung dua". Ia adalah alat berkuasa yang boleh meningkatkan kecekapan aplikasi anda dan mempercepatkan prestasinya.

Deque ialah jenis data bekas khusus yang menawarkan operasi tambah dan pop yang lebih cepat daripada kedua-dua hujung bekas. Ini menjadikannya alat yang berharga untuk melaksanakan baris gilir dan tindanan, yang merupakan jenis data seperti senarai biasa dalam pengkomputeran.

Ia adalah struktur data peringkat rendah dan sangat dioptimumkan yang sangat berguna untuk pelbagai aplikasi. Sebagai pengaturcara Python, deque ialah salah satu alat yang anda mahu ada dalam senjata anda.

Teruskan membaca untuk mengetahui lebih lanjut tentang Deques dan cara anda boleh melaksanakannya dalam kod Python anda !

Deque Dalam Python – Tutorial Dengan Contoh

Isi kandungan

Apa itu Deque?

Jika anda baru menggunakan Python atau pengaturcaraan komputer secara umum, anda mungkin tertanya-tanya apa itu deque. Deque ialah singkatan bagi “ baris gilir dua hujung, ” dan ia merupakan struktur data yang membolehkan anda menambah dan mengalih keluar elemen daripada kedua-dua hujung baris gilir.

Ia serupa dengan baris gilir biasa tetapi dengan fleksibiliti tambahan untuk dapat menambah dan mengalih keluar elemen dari kedua-dua bahagian depan dan belakang baris gilir. Ini mungkin kerana deque Python dilaksanakan sebagai senarai berganda.

Dalam Python, deques dilaksanakan menggunakan modul koleksi, yang menyediakan kelas deque. Kelas ini menyediakan beberapa kaedah untuk menambah dan mengalih keluar elemen daripada deque.

Ia juga menyediakan fungsi untuk operasi lain yang berguna seperti memutar deque atau mengosongkannya sepenuhnya.

Ciri-ciri A Python Deque

Tidak seperti senarai biasa, yang mempunyai kerumitan masa O(n) untuk operasi tambahan dan pop, deque menyediakan kerumitan masa O(1). Ini menjadikannya lebih pantas dan cekap memori untuk operasi baca dan tulis ini.

Berikut adalah beberapa lagi ciri Python deque yang perlu anda ketahui:

  • Ia adalah struktur data boleh ubah.

  • Ia boleh menyimpan pelbagai jenis data cth, Integer, tupel, tatasusunan, dsb.

  • Ia menyokong pengindeksan, tetapi tidak menghiris operasi.

  • Ia tidak menyokong pengisihan di tempat

  • Ia menyokong fungsi dan operasi boleh lelar terbina dalam biasa seperti in , sorted() , len() , reverse() , dsb.

Aplikasi A Deque

Deques berguna untuk pelbagai sebab. Contohnya, ia boleh digunakan untuk melaksanakan baris gilir atau timbunan, kedua-duanya adalah struktur data biasa dalam sains komputer.

Ia juga boleh digunakan untuk memproses data dengan cekap dalam masa nyata, seperti dalam aplikasi penstriman atau dalam sistem yang memerlukan akses pantas kepada data.

Di samping digunakan untuk baris gilir dan tindanan, deques juga boleh digunakan untuk melaksanakan algoritma carian pertama keluasan. Ia juga berguna untuk mengekalkan tetingkap gelongsor item dalam urutan yang lebih besar.

Cara Mencipta dan Memulakan Deque

Anda boleh membuat deque menggunakan fungsi terbina dalam daripada modul koleksi. Mari kita lihat dengan teliti cara anda boleh membuat dan mengisi struktur data ini.

Menggunakan Fungsi deque().

Untuk mencipta deque dalam Python, anda boleh menggunakan fungsi deque() terbina dalam daripada modul koleksi. Fungsi ini mengembalikan objek deque kosong baharu yang boleh anda gunakan untuk melaksanakan baris gilir dua hujung.

Berikut ialah contoh cara membuat objek deque kosong:

from collections import deque 

my_deque = deque() 

Anda juga boleh mencipta deque dengan elemen awal dengan menghantar iterable (senarai, tuple, dll.) ke fungsi deque() . Deque akan dimulakan dengan elemen dalam lelaran, dari kiri ke kanan.

Berikut adalah contoh:

from collections import deque

my_list = [1, 2, 3, 4, 5] 
my_deque = deque(my_list)

Memulakan Deque dengan Elemen

Anda juga boleh memulakan deque kosong dengan elemen menggunakan pelbagai kaedah. Satu cara untuk melakukan ini ialah menggunakan kaedah append() dan appendleft() untuk menambah elemen pada deque dari sisi kanan dan kiri, masing-masing.

Berikut adalah contoh:

from collections import deque

#Initialize the empty deque
my_deque = deque()
print(my_deque)

#Add Values to the deque
my_deque.append(1) 
my_deque.append(2) 
my_deque.appendleft(3) 

print(my_deque)

Selepas menjalankan kod ini, deque akan mengandungi elemen [3, 1, 2].

Deque Dalam Python – Tutorial Dengan Contoh

Satu lagi cara untuk memulakan deque dengan elemen adalah dengan menghantar senarai elemen ke fungsi deque() .

Berikut adalah contoh:

from collections import deque

my_deque = deque([1, 2, 3]) 

Menjalankan kod ini akan mencipta objek deque yang mengandungi elemen [1, 2, 3] .

Secara keseluruhan, mencipta dan memulakan deque dalam Python adalah mudah dan boleh dilakukan menggunakan fungsi deque() terbina dalam . Anda juga boleh melakukan ini dengan menambah elemen pada deque kosong menggunakan kaedah append() dan appendleft() .

Cara Melakukan Operasi Deque Biasa

Terdapat banyak operasi yang boleh anda lakukan pada objek deque dalam Python. Mari lihat beberapa yang lebih popular.

Menambah Elemen pada Deque

Anda boleh menambah elemen pada deque Python menggunakan kaedah append() dan appendleft() . Kaedah append() menambah elemen ke hujung kanan deque manakala kaedah appendleft() menambah elemen ke hujung kiri deque.

Berikut ialah contoh:

import collections 

# Create an empty deque 
my_deque = collections.deque() 

# Add elements to the deque 
my_deque.append(1) 
my_deque.appendleft(2) 
my_deque.append(3) 

print(my_deque) 

# Output: 
deque([2, 1, 3])

Menambah Berbilang Elemen Data pada A Deque

Jika anda tidak mahu menambah elemen data pada deque satu demi satu, anda boleh mempercepatkan proses dengan fungsi extend() atau extendleft() . Fungsi ini mengambil iterable dan menambahkan kandungan iterable ke hujung atau hujung kiri deque masing-masing.

Berikut ialah contoh:

from collections import deque

my_list = [1, 2, 3, 4, 5] 
my_deque = deque(my_list)

#Creating a tuple and list
cont = (11, 12, 13, 14)
full = [10,20,30]

#Extending the deque from the right
my_deque.extend(cont)
print(my_deque)

#Extending the deque from the left
my_deque.extendleft(full)
print(my_deque)

Dalam kod di atas fungsi extend() menambahkan berbilang nilai dalam tuple sambung ke penghujung deque. Seterusnya, fungsi extendleft() menambahkan berbilang elemen data dalam senarai penuh ke hujung kiri deque.

Deque Dalam Python – Tutorial Dengan Contoh

Mengeluarkan Elemen daripada Deque

Anda boleh mengalih keluar elemen daripada deque Python menggunakan kaedah pop() dan popleft() . Kaedah pop() mengalih keluar dan mengembalikan elemen paling kanan deque manakala kaedah popleft() mengalih keluar dan mengembalikan elemen paling kiri deque.

Berikut ialah contoh:

import collections 

#Create a deque with some elements 
my_deque = collections.deque([1, 2, 3, 4, 5]) 

#Remove elements from the deque 
my_deque.pop() 
my_deque.popleft() 

print(my_deque) 

# Output: deque([2, 3, 4])

Anda juga boleh mengalih keluar nilai tertentu daripada deque menggunakan fungsi remove() . Fungsi mengalih keluar kejadian pertama nilai yang ditentukan daripada deque.

Berikut ialah contoh:

import collections 

#Create a deque with some elements 
my_deque = collections.deque([1, 2, 1, 4, 5]) 

#Remove elements from the deque 
my_deque.remove(1)

print(my_deque) 

# Output: deque([2, 1, 4, 5])

Jika elemen tidak ditemui, Python akan mengembalikan ValueError .

Mengeluarkan Semua Elemen Daripada Deque

Untuk mengalih keluar semua elemen daripada Deque dan mengembalikannya kepada keadaan kosong, kita boleh menggunakan fungsi clear() . Begini cara ia berfungsi:

from collections import deque 

#Create a deque with some elements 
my_deque = deque([1, 2, 1, 4, 5]) 

#Remove all elements from the deque 
my_deque.clear()

print(my_deque) 

# Output: 
deque([])

Accessing Elements of a Deque

You can access elements of a Python deque using the indexing operator []. You can also use a negative value in the indexing operator to access the deque elements from the right.

The indexing starts from 0 for the leftmost element and -1 for the rightmost element. Here’s an example:

import collections 

# Create a deque with some elements 
my_deque = collections.deque([1, 2, 3, 4, 5]) 

# Access elements of the deque 
print(my_deque[0]) 
# Output: 1 

print(my_deque[-1]) 
# Output: 5 

Modifying Elements of a Deque

You can modify elements of a Python deque using the indexing operator “[]” and the assignment operator “=“. Here’s an example:

from collections import deque

# Create a deque with some elements 
my_deque = deque([1, 2, 3, 4, 5]) 
print(my_deque)

# Modify elements of the deque 
my_deque[0] = 10 
my_deque[-1] = 50 

print(my_deque) 

In the above code, the indexing operator changes the first and last elements of the deque to 10 and 50 respectively.

Deque Dalam Python – Tutorial Dengan Contoh

These are the basic operations you can perform on a deque object in Python. With these operations, you can efficiently implement various data structures such as queues, stacks, and more.

How to Work with a Deque as a Queue

You can use a deque in Python to implement a queue data structure. A queue is an abstract data type that operates on a first in first out (FIFO) basis.

What this means is that you can append new items from one end of the queue and push out old items from the other end.

A good way to explain this is a line at a store. Typically, the first person to arrive will be at the head of the line and will be attended to first.

New arrivals will have to head to the back of the line and wait their turn. So, the first in will be the first answered, while the last in will be the last attended to.

Here’s how you can use a deque to implement queues.

Using append() and popleft() Methods

Untuk menggunakan deque sebagai baris gilir, anda boleh menggunakan kaedah append() untuk menambah elemen pada hujung kanan deque. Selain itu, anda boleh menggunakan kaedah popleft() untuk mengalih keluar elemen dari hujung kiri deque.

Ini adalah cara yang sangat cekap untuk melaksanakan baris gilir dalam Python. Berikut adalah contoh:

from collections import deque 

queue = deque() 
queue.append(1) 
queue.append(2) 
queue.append(3) 

print(queue) 
# Output: deque([1, 2, 3]) 

x = queue.popleft() 
print(x) 
# Output: 1 

print(queue) 
# Output: deque([2, 3]) 

Seperti yang anda lihat, kaedah append() menambah elemen pada hujung kanan deque, dan kaedah popleft() mengalih keluar elemen dari hujung kiri deque.

Inilah yang kita perlukan dalam pelaksanaan baris gilir.

Menyemak sama ada Barisan Deque Kosong

Untuk menyemak sama ada deque kosong, anda boleh menggunakan operator bukan . Berikut adalah contoh:

from collections import deque 

queue = deque() 
if not queue: 
   print("Queue is empty") 
else: 
   print("Queue is not empty") 

Ini akan mengeluarkan " Baris gilir kosong " kerana deque kosong. Jika anda menambah elemen pada deque, ia tidak akan kosong lagi.

Kesimpulannya, menggunakan deque sebagai baris gilir dalam Python adalah sangat cekap dan mudah untuk dilaksanakan.

Bekerja dengan Deque sebagai Tindanan

Sama seperti baris gilir, tindanan ialah satu lagi contoh jenis data abstrak yang boleh anda gunakan dalam menyusun data. Tidak seperti baris gilir, tindanan beroperasi dalam fesyen keluar pertama kali terakhir (LIFO).

Ini bermakna elemen terakhir ke dalam deque akan menjadi elemen pertama keluar. Begini cara anda boleh melaksanakan ini menggunakan struktur data asas.

Menggunakan Kaedah append() dan pop().

Apabila menggunakan Deque sebagai tindanan, anda boleh menambah elemen pada bahagian atas tindanan menggunakan kaedah append() . Kaedah ini menambah elemen ke hujung kanan deque.

Begitu juga, anda boleh mengalih keluar elemen dari bahagian atas timbunan menggunakan kaedah pop() . Kaedah ini mengalih keluar dan mengembalikan elemen paling kanan deque.

Sebagai contoh, katakan anda mempunyai deque yang dipanggil “ my_stack ” dan anda mahu menambah elemen pada bahagian atas tindanan. Anda boleh menggunakan kod berikut:

 my_stack.append(5) 

Ini akan menambah elemen 5 ke bahagian atas timbunan.

Jika anda ingin mengalih keluar elemen teratas daripada timbunan, anda boleh menggunakan kaedah pop(): `

bal = my_stack.pop() 

print(bal)
# Output: 5

Ini akan mengalih keluar dan mengembalikan elemen paling kanan deque, yang dalam kes ini ialah 5.

Menyemak Objek Deque Kosong

Anda boleh menyemak sama ada timbunan deque kosong dengan menggunakan pengendali boolean “ bukan “. Jika deque kosong, “ not my_deque ” akan mengembalikan True . Jika tidak, ia akan mengembalikan False .

Sebagai contoh, katakan anda mempunyai timbunan deque yang dipanggil “ my_deque ” dan anda ingin menyemak sama ada ia kosong. Anda boleh menggunakan kod berikut:

if not my_deque: 
   print("The deque is empty") 

else: 
   print("The deque is not empty") 

Ini akan mencetak " Deque kosong " jika deque kosong. Jika ia tidak kosong, output akan menjadi " The deque is not empty ".

Apabila bekerja dengan Deque sebagai tindanan, adalah penting untuk menjejaki sama ada tindanan itu kosong atau tidak. Jika anda cuba memunculkan elemen daripada timbunan kosong, anda akan mendapat IndexError .

Apakah Deque Terhad?

Deque terhad ialah baris gilir dua hujung dengan beberapa sekatan diletakkan pada penambahan data dan operasi pop pada kedua-dua hujung deque. Terdapat dua jenis utama deque terhad; Input terhad deque dan output terhad deques

Mari lihat mereka:

Input Terhad Deque

Deque terhad input membolehkan anda memunculkan atau memadam elemen data dari kedua-dua hujung deque. Walau bagaimanapun, anda hanya boleh memasukkan elemen data dari satu hujung deque.

Ini sangat berguna dalam aplikasi dengan kekangan ingatan. Anda boleh menggunakannya untuk menambah elemen data dalam susunan kronologi sambil mengekalkan keupayaan untuk membuang data dari mana-mana hujung deque.

Keluaran Terhad Deque

Deque terhad keluaran membolehkan anda memasukkan data dari kedua-dua hujung deque. Walau bagaimanapun, anda hanya boleh memadamkan item dari satu hujung deque yang dipanggil hujung hadapan.

Deque terhad keluaran sangat berguna dalam kes di mana anda perlu melaksanakan struktur data FIFO, tetapi masih mahu kefungsian menambah data dari kedua-dua hujung.

Mari Kita Bungkus Ini

Sekarang, anda sepatutnya mempunyai pemahaman yang baik tentang modul deque dalam Python dan bagaimana ia boleh digunakan untuk melaksanakan baris gilir dan susunan yang cekap.

Deques ialah struktur data serba boleh yang menawarkan banyak kelebihan berbanding senarai tradisional. Kelebihan ini jelas apabila melibatkan operasi lampiran dan pop yang cekap memori.

Mereka juga merupakan pilihan yang bagus apabila anda perlu melaksanakan timbunan atau baris gilir dua hujung. Beberapa faedah utama menggunakan deques termasuk:

  • Operasi tambah O(1) dan pop yang cekap dari kedua-dua hujung deque

  • Akses O(1) pantas kepada elemen pertama dan terakhir deque

  • Sokongan terbina dalam untuk operasi atom selamat benang

  • Kaedah fleksibel untuk memasukkan, mengeluarkan dan memutar elemen dalam deque

Secara keseluruhannya, modul deque ialah alat berkuasa yang boleh membantu anda menulis kod Python yang lebih cekap dan boleh diselenggara. Sama ada anda sedang mengusahakan skrip kecil atau projek berskala besar, deques pasti bernilai dipertimbangkan sebagai alternatif kepada senarai tradisional atau struktur data lain!

Bersedia untuk mengetahui lebih lanjut tentang Python, lihat senarai main kami di bawah


Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Anda akan belajar cara menyimpan dan memuatkan objek daripada fail .rds dalam R. Blog ini juga akan membincangkan cara mengimport objek dari R ke LuckyTemplates.

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Dalam artikel ini, saya akan menjalankan konteks penapis. Konteks penapis ialah salah satu topik utama yang perlu dipelajari oleh mana-mana pengguna LuckyTemplates pada mulanya.

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.

Pelaporan Perniagaan Menggunakan LuckyTemplates

Pelaporan Perniagaan Menggunakan LuckyTemplates

Jika anda masih menggunakan Excel sehingga sekarang, maka inilah masa terbaik untuk mula menggunakan LuckyTemplates untuk keperluan pelaporan perniagaan anda.

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu