Deque In Python – opetusohjelma esimerkkejä

Jos olet Python-kehittäjä, olet todennäköisesti kuullut dequesta tai "kaksipäätteisestä jonosta". Se on tehokas työkalu, joka voi lisätä sovelluksesi tehokkuutta ja nopeuttaa sen suorituskykyä.

Deque on erikoistunut säilön tietotyyppi, joka tarjoaa nopeammat lisäys- ja pop-toiminnot säilön molemmista päistä. Tämä tekee siitä arvokkaan työkalun jonojen ja pinojen toteuttamiseen, jotka ovat yleisiä luettelomaisia ​​tietotyyppejä laskennassa.

Se on matalan tason ja erittäin optimoitu tietorakenne, joka on erittäin hyödyllinen useissa sovelluksissa. Python-ohjelmoijana deque on yksi työkalu, jonka haluat olla arsenaalissasi.

Jatka lukemista saadaksesi lisätietoja Dequesistä ja kuinka voit ottaa ne käyttöön !

Deque In Python – opetusohjelma esimerkkejä

Sisällysluettelo

Mikä on Deque?

Jos olet uusi Pythonissa tai tietokoneohjelmoinnissa yleensä, saatat ihmetellä, mitä deque on. Deque tarkoittaa " kaksipäätteistä jonoa ", ja se on tietorakenne, jonka avulla voit lisätä ja poistaa elementtejä jonon molemmista päistä.

Se on samanlainen kuin tavallinen jono, mutta siinä on joustavuutta, koska se voi lisätä ja poistaa elementtejä sekä jonon etu- että takapuolelta. Tämä on mahdollista, koska Pythonin deque on toteutettu kaksoislinkitettynä luettelona.

Pythonissa dequet toteutetaan kokoelmamoduulilla, joka tarjoaa deque-luokan. Tämä luokka tarjoaa useita menetelmiä elementtien lisäämiseen ja poistamiseen deque-tiedostosta.

Se tarjoaa myös toimintoja muihin hyödyllisiin toimintoihin, kuten dequen pyörittämiseen tai sen tyhjentämiseen kokonaan.

Python Dequen ominaisuudet

Toisin kuin tavallisessa listassa, jolla on O(n)-aika monimutkaisuus append- ja pop-operaatioille, deque tarjoaa O(1)-aikaisen monimutkaisuuden. Tämä tekee siitä huomattavasti nopeamman ja muistitehokkaan näihin luku- ja kirjoitustoimintoihin.

Tässä on joitain muita Python deque -ominaisuuksia, joista sinun pitäisi tietää:

  • Se on muuttuva tietorakenne.

  • Se voi tallentaa useita tietotyyppejä, esim. kokonaisluvut, monikot, taulukot jne.

  • Se tukee indeksointia, mutta ei viipalointitoimintoja.

  • Se ei tue paikan päällä tapahtuvaa lajittelua

  • Se tukee yleisiä sisäänrakennettuja iteroitavia toimintoja ja toimintoja, kuten in , sorted() , len() , reverse() jne.

A Dequen sovellukset

Dequet ovat hyödyllisiä monista syistä. Niitä voidaan käyttää esimerkiksi jonon tai pinon toteuttamiseen, jotka molemmat ovat yleisiä tietorakenteita tietojenkäsittelytieteessä.

Niitä voidaan käyttää myös tietojen tehokkaaseen käsittelyyn reaaliajassa, kuten suoratoistosovelluksissa tai järjestelmissä, jotka edellyttävät nopeaa pääsyä tietoihin.

Sen lisäksi, että niitä käytetään jonoihin ja pinoihin, niitä voidaan käyttää myös leveysensimmäisten hakualgoritmien toteuttamiseen. Ne ovat hyödyllisiä myös, kun haluat säilyttää kohteiden liukuvan ikkunan suuremmassa järjestyksessä.

Dequen luominen ja alustaminen

Voit luoda dequen käyttämällä kokoelmamoduulin sisäänrakennettua toimintoa. Katsotaanpa tarkasti, kuinka voit luoda ja täyttää tämän tietorakenteen.

Deque()-funktion käyttäminen

Voit luoda dequen Pythonissa käyttämällä kokoelmamoduulin sisäänrakennettua deque()- funktiota. Tämä funktio palauttaa uuden tyhjän deque-objektin, jota voit käyttää kaksipäisen jonon toteuttamiseen.

Tässä on esimerkki tyhjän deque-objektin luomisesta:

from collections import deque 

my_deque = deque() 

Voit myös luoda dequen alkuelementeillä välittämällä iteroitavan (list, tuple jne.) deque()- funktiolle. Deque alustetaan iterable-elementeillä vasemmalta oikealle.

Tässä on esimerkki:

from collections import deque

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

Dequen alustaminen elementeillä

Voit myös alustaa tyhjän dequen elementeillä eri menetelmillä. Yksi tapa tehdä tämä on lisätä append()- ja appendleft()- menetelmiä elementtien lisäämiseen deque-tiedostoon oikealta ja vasemmalta puolelta.

Tässä on esimerkki:

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)

Tämän koodin suorittamisen jälkeen deque sisältää elementit [3, 1, 2].

Deque In Python – opetusohjelma esimerkkejä

Toinen tapa alustaa deque elementeillä on välittää luettelo elementeistä deque ()- funktiolle.

Tässä on esimerkki:

from collections import deque

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

Tämän koodin suorittaminen luo deque-objektin, joka sisältää elementit [1, 2, 3] .

Kaiken kaikkiaan dequen luominen ja alustaminen Pythonissa on yksinkertaista, ja se voidaan tehdä käyttämällä sisäänrakennettua deque()- toimintoa. Voit tehdä tämän myös lisäämällä elementtejä tyhjään deque-tiedostoon append()- ja appendleft()- menetelmillä.

Kuinka suorittaa yleisiä deque-operaatioita

Pythonissa on monia toimintoja, joita voit suorittaa deque-objekteille. Katsotaanpa joitain suosituimmista.

Elementtien lisääminen deque-kappaleeseen

Voit lisätä elementtejä deque-tiedostoon append()- ja appendleft()- menetelmillä. Append () -menetelmä lisää elementin dequen oikeaan päähän, kun taas appendleft()- metodi lisää elementin dequen vasempaan päähän.

Tässä on esimerkki:

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])

Useiden tietoelementtien lisääminen deque-tiedostoon

Jos et halua lisätä deque-tietoelementtejä yksitellen, voit nopeuttaa prosessia extend()- tai extendleft()- funktioilla. Nämä funktiot ottavat iteroitavan ja lisäävät iteroitavan sisällön dequen loppuun tai vasempaan loppuun.

Tässä on esimerkki:

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)

Yllä olevassa koodissa extend()- funktio lisää useat arvot cont -tyypissä dequen loppuun. Seuraavaksi extendleft()- funktio liittää useat tietoelementit täydellisessä luettelossa dequen vasempaan päähän.

Deque In Python – opetusohjelma esimerkkejä

Elementtien poistaminen dequesta

Voit poistaa elementtejä Python-dequesta pop()- ja popleft()- menetelmillä. Pop () -menetelmä poistaa ja palauttaa dequen oikeanpuoleisimman elementin, kun taas popleft()- menetelmä poistaa ja palauttaa dequen vasemmanpuoleisimman elementin.

Tässä on esimerkki:

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])

Voit myös poistaa tietyn arvon dequesta käyttämällä remove()- funktiota. Funktio poistaa määritetyn arvon ensimmäisen esiintymän dequesta.

Tässä on esimerkki:

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])

Jos elementtiä ei löydy, Python palauttaa ValueError .

Kaikkien osien poistaminen dequesta

Voit poistaa kaikki elementit Dequesta ja palauttaa sen tyhjään tilaan käyttämällä clear()- funktiota. Näin se toimii:

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([])

Dequen elementtien käyttö

Python-dequen elementtejä pääsee käsiksi indeksointioperaattorilla [] . Voit myös käyttää negatiivista arvoa indeksointioperaattorissa päästäksesi deque-elementteihin oikealta.

Indeksointi alkaa 0:sta vasemmanpuoleisen elementin kohdalla ja -1:stä oikeanpuoleisimman elementin kohdalla. Tässä on esimerkki:

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 

Dequen elementtien muokkaaminen

Python-dequen elementtejä voi muokata indeksointioperaattorilla " [] " ja osoitusoperaattorilla " = ". Tässä on esimerkki:

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) 

Yllä olevassa koodissa indeksointioperaattori muuttaa dequen ensimmäisen ja viimeisen elementin arvoon 10 ja 50.

Deque In Python – opetusohjelma esimerkkejä

Nämä ovat perustoimintoja, joita voit suorittaa deque-objektille Pythonissa. Näiden toimintojen avulla voit toteuttaa tehokkaasti erilaisia ​​tietorakenteita, kuten jonoja, pinoja ja paljon muuta.

Kuinka työskennellä dequen kanssa jonona

Pythonissa voit käyttää deque-toimintoa jonotietorakenteen toteuttamiseen. Jono on abstrakti tietotyyppi, joka toimii FIFO-periaatteella .

Tämä tarkoittaa, että voit lisätä uusia kohteita jonon toisesta päästä ja työntää pois vanhoja kohteita toisesta päästä.

Hyvä tapa selittää tämä on jono myymälässä. Yleensä ensimmäinen saapuva henkilö on linjan kärjessä ja häntä hoidetaan ensimmäisenä.

Uusien tulokkaiden on suunnattava jonon takaosaan ja odotettava vuoroaan. Joten ensimmäiseksi saapuvaan vastataan ensimmäisenä, kun taas viimeiseen saapuvaan vastataan viimeisenä.

Näin voit käyttää deque-toimintoa jonojen toteuttamiseen.

Append()- ja popleft()-menetelmien käyttäminen

Jos haluat käyttää deque-tiedostoa jonona, voit lisätä elementtejä lisäyksen oikeaan päähän append()- menetelmällä. Lisäksi voit käyttää popleft()- menetelmää elementtien poistamiseen dequen vasemmasta päästä.

Tämä on erittäin tehokas tapa toteuttaa jono Pythonissa. Tässä on esimerkki:

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]) 

Kuten näet, append()- menetelmä lisää elementtejä dequen oikeaan päähän ja popleft()- metodi poistaa elementtejä dequen vasemmasta päästä.

Tämä on juuri sitä, mitä tarvitsemme jonototeutuksessa.

Tarkistaa, onko tyhjennysjono tyhjä

Voit tarkistaa, onko deque tyhjä, käyttämällä not- operaattoria. Tässä on esimerkki:

from collections import deque 

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

Tämä tulostaa " Jono on tyhjä ", koska deque on tyhjä. Jos lisäät deque-elementtejä, se ei ole enää tyhjä.

Yhteenvetona voidaan todeta, että dequen käyttäminen jonona Pythonissa on erittäin tehokasta ja helppokäyttöistä.

Työskentely Dequen kanssa pinona

Kuten jonot, pinot ovat toinen esimerkki abstrakteista tietotyypeistä, joita voit käyttää tietojen järjestämiseen. Toisin kuin jonot, pinot toimivat LIFO-tyylillä.

Tämä tarkoittaa, että dequen viimeinen elementti on ensimmäinen elementti. Näin voit toteuttaa tämän käyttämällä taustalla olevaa tietorakennetta.

Append()- ja pop()-menetelmien käyttö

Kun käytät Dequea pinona, voit lisätä elementtejä pinon yläosaan append()- menetelmällä. Tämä menetelmä lisää elementin dequen oikeaan päähän.

Vastaavasti voit poistaa elementtejä pinon yläosasta pop()- menetelmällä. Tämä menetelmä poistaa ja palauttaa dequen oikeanpuoleisimman elementin.

Oletetaan esimerkiksi, että sinulla on deque nimeltä " my_stack " ja haluat lisätä elementin pinon yläosaan. Voit käyttää seuraavaa koodia:

 my_stack.append(5) 

Tämä lisää elementin 5 pinon yläosaan.

Jos haluat poistaa ylimmän elementin pinosta, voit käyttää pop()-menetelmää: `

bal = my_stack.pop() 

print(bal)
# Output: 5

Tämä poistaa ja palauttaa dequen oikeanpuoleisimman elementin, joka tässä tapauksessa on 5.

Tarkistetaan tyhjää deque-objektia

Voit tarkistaa, onko tyhjennyspino tyhjä, käyttämällä loogista operaattoria “ not ”. Jos deque on tyhjä, " not my_deque " palauttaa True . Muussa tapauksessa se palauttaa False .

Oletetaan esimerkiksi, että sinulla on deque-pino nimeltä “ my_deque ” ja haluat tarkistaa, onko se tyhjä. Voit käyttää seuraavaa koodia:

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

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

Tämä tulostaa " Deque is empty ", jos deque on tyhjä. Jos se ei ole tyhjä, tuloste on " The deque is not empty ".

Kun työskentelet Dequen kanssa pinona, on tärkeää seurata, onko pino tyhjä vai ei. Jos yrität nostaa elementin tyhjästä pinosta, saat IndexError -ilmoituksen .

Mikä on rajoitettu deque?

Rajoitettu deque on kaksipäinen jono, jossa on joitain rajoituksia datan lisäys- ja pop-operaatioille dequen molemmissa päissä. On olemassa kaksi päätyyppiä rajoitettuja deques; Syöttörajoitetut dequet ja lähtörajoitetut dequet

Katsotaanpa niitä:

Input Restricted Deque

Syöttörajoitetun dequen avulla voit ponnahtaa tai poistaa dataelementtejä dequen molemmista päistä. Voit kuitenkin lisätä tietoelementtejä vain dequen yhdestä päästä.

Tämä on erittäin hyödyllistä sovelluksissa, joissa on muistirajoituksia. Voit käyttää sitä dataelementtien lisäämiseen kronologisessa järjestyksessä säilyttäen samalla mahdollisuuden hylätä tietoja dequen mistä tahansa päästä.

Lähtörajoitettu deque

Tuotosrajoitetun dequen avulla voit lisätä tietoja dequen molemmista päistä. Voit kuitenkin poistaa kohteita vain yhdestä dequen päästä, jota kutsutaan etupääksi.

Lähtörajoitettu deque on erittäin hyödyllinen tapauksissa, joissa sinun on otettava käyttöön FIFO-tietorakenne, mutta silti haluat toiminnallisuuden lisäävän tietoja molemmista päistä.

Kääritään tämä

Tähän mennessä sinulla pitäisi olla hyvä ymmärrys Pythonin deque-moduulista ja siitä, kuinka sitä voidaan käyttää tehokkaiden jonojen ja pinojen toteuttamiseen.

Deques on monipuolinen tietorakenne, joka tarjoaa monia etuja perinteisiin luetteloihin verrattuna. Nämä edut ovat ilmeisiä, kun kyse on muistia säästävistä liittämis- ja pop-operaatioista.

Ne ovat myös loistava valinta, kun sinun on otettava käyttöön pino tai kaksipäinen jono. Jotkut dequen käytön tärkeimmistä eduista ovat:

  • Tehokkaat O(1) append ja pop -operaatiot dequen molemmista päistä

  • Nopea O(1) pääsy dequen ensimmäiseen ja viimeiseen elementtiin

  • Sisäänrakennettu tuki kierreturvallisiin, atomitoimintoihin

  • Joustavat menetelmät elementtien lisäämiseen, poistamiseen ja pyörittämiseen

Kaiken kaikkiaan deque-moduuli on tehokas työkalu, jonka avulla voit kirjoittaa tehokkaampaa ja ylläpidettävämpää Python-koodia. Työskenteletpä sitten pienen käsikirjoituksen tai suuren mittakaavan projektin parissa, dequet ovat ehdottomasti harkitsemisen arvoisia vaihtoehtona perinteisille listoille tai muille tietorakenteille!

Valmiina oppimaan lisää Pythonista, katso soittolistamme alla


Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Kuinka asentaa DAX Studio & Tabular Editor LuckyTemplatesissa

Opi lataamaan ja asentamaan DAX Studio ja Tabular Editor 3 ja miten ne määritetään käytettäväksi LuckyTemplatesissa ja Excelissä.

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

LuckyTemplates -muotokartan visualisointi tilaanalyysiin

Tämä blogi sisältää Shape Map -visualisoinnin tilaanalyysiä varten LuckyTemplatesissa. Näytän sinulle, kuinka voit käyttää tätä visualisointia tehokkaasti sen ominaisuuksien ja elementtien kanssa.

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

LuckyTemplatesin talousraportointi: tulosten kohdentaminen malleihin jokaisella rivillä

Tässä opetusohjelmassa esittelen ainutlaatuisen idean talousraportoinnista, joka allokoi tulokset LuckyTemplatesin sisällä olevien taulukkopohjien ennalta määrittämiseen.

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

DAX-mittaukset LuckyTemplatesissa käyttämällä mittahaaroitusta

Luo DAX-suureita LuckyTemplatesissa käyttämällä olemassa olevia suureita tai kaavoja. Tätä kutsun mittahaaroitustekniikaksi.

Tehokkain toimintopuhelu LuckyTemplatesissa

Tehokkain toimintopuhelu LuckyTemplatesissa

Tässä blogissa tutustu LuckyTemplates-tietojoukkoon, tehokkaimpaan funktiokutsuun, joka tuo tuhansia M- ja DAX-funktioita sormiesi ulottuville.

Datamallinnustekniikat DAX-mittausten järjestämiseen

Datamallinnustekniikat DAX-mittausten järjestämiseen

Tämän päivän opetusohjelmassa jaan muutamia datamallinnustekniikoita DAX-mittausten järjestämiseksi paremmin tehokkaamman työnkulun aikaansaamiseksi.

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates Financial Dashboard: Täydelliset taulukon mukautusvinkit

LuckyTemplates on loistava työkalu talousraportointiin. Tässä on opetusohjelma räätälöityjen taulukoiden luomisesta LuckyTemplates-talouden hallintapaneelillesi.

Power Queryn kielivirran parhaat käytännöt

Power Queryn kielivirran parhaat käytännöt

Tässä opetusohjelmassa keskustellaan Power Query Language Flowsta ja siitä, kuinka se voi auttaa luomaan sujuvan ja tehokkaan dataraportin.

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

LuckyTemplates mukautetut kuvakkeet | PBI-visualisointitekniikka

Keskustelen yhdestä suosikkitekniikoistani mukautettujen LuckyTemplates-kuvakkeiden ympärillä, joka käyttää mukautettuja kuvakkeita dynaamisella tavalla LuckyTemplates-visuaaleissa.

LuckyTemplates -taulukoiden luominen UNION & ROW -funktiolla

LuckyTemplates -taulukoiden luominen UNION & ROW -funktiolla

Tässä blogissa näytän sinulle, kuinka voit luoda LuckyTemplates-taulukoita käyttämällä kaavaa, joka yhdistää UNION-funktion ja ROW-funktion.