Piton

Python Deque

Python Deque

Deque znači red s dva kraja, s dodavanjem elemenata s bilo kojeg kraja; korisnici također mogu ukloniti elemente s bilo kojeg kraja. Ovaj modul dolazi iz biblioteke zbirki i implementiran je pomoću ovog modula. Općenito je poželjno s popisa gdje moramo imati bržu metodu dodavanja operacija. Dodavanje i uklanjanje mogu se obaviti s oba kraja spremnika. Korisnici mogu dodati vrijednosti u deque ili ih ukloniti s obje strane. Mogu čak i preokrenuti čitav deque. Vodič će obuhvatiti sve moguće slučajeve korištenja, zajedno s razrađenim primjerima radi jednostavnosti korisnika.

Za implementaciju idealno koristimo najnoviju verziju Pythona, a to je Python x3.8, ali ako netko nema najnoviju verziju, čak i tada je može primijeniti na svojim verzijama. To će generirati slične rezultate.

Usporedba Dequea s popisom:

Deque je brži za dodavanje na početku i na kraju deque-a. Popisi su brži kada je riječ o dodavanju i uklanjanju elemenata sa sredine popisa. Na popisu korisnici mogu koristiti indeks i vrijednosti za umetanje na popise, dok ih u deque možemo dodati na lijevoj ili desnoj strani.

Dequei su više poput redova i hrpa. Oni također podržavaju zaštitu bez niti i učinkoviti su u smislu memorije. Pops s obje strane šupljine isti su, t.j.e., O (1) u bilo kojem smjeru. Popis objekata podržavaju operacije. Popisi su optimizirani za mnogo brže operacije.

Deque je popis dvostrukih veza s mnogo većom memorijom od popisa. Podržava dva pokazivača po čvoru umjesto jednog. Sve u svemu, ta se razlika može zanemariti. Korisnici se mogu dodati i pojaviti na oba kraja u Dequeu.

Primjer

Evo primjera izvedenog uvozom dequea. Kôd je osnovni uzorak koji se može koristiti za uvoz kolekcija, a korisnici se mogu odlučiti za ovaj uzorak kada žele uvesti deque. Zbirke uvoze deque, a zatim deklariramo deque u sljedećem koraku. Napokon, kada ga ispisujemo kako bismo provjerili vrijednost našeg rezultata.

>>> iz zbirki import deque
>>> red čekanja = deque (['broj', 'mjesto', 'naslov'])
>>> ispis (red)

IzlazIzlazna vrijednost dequea izgledat će ovako:

Operacije deque

Različite operacije mogu se izvoditi u deque (). U ovom ćemo odjeljku ilustrirati sve moguće radnje koje će biti korisne za korisnike. Isprva ćemo provjeriti mogućnost uvoza dostupnu za uvoz kolekcije.

Uvoz kolekcija

Slijedi još jedan primjer uvoza kolekcija:

>>> uvoz kolekcija
>>> DoubleEnded = zbirke.deque ([„ponedjeljak, utorak“, „srijeda“])
>>> ispis (DoubleEnded)

IzlazČim dodirnete enter, izlaz će se pojaviti kako je dodano u nastavku:

Dodaj vrijednost zdesna:

Sada ćemo za dodavanje vrijednosti na desnu stranu upotrijebiti sljedeću ulaznu vrijednost. Dodati ćemo četvrtak s desne strane reda. Vrijednost će biti dodana na desnoj strani popisa.

>>> ispis ("Dodavanje udesno:")
>>> DoubleEnded.dodaj ("četvrtak")
>>> ispis (DoubleEnded)


Izlaz
Klikom na enter, izlaz će se pojaviti sličan ovom:

U gornjem primjeru vrijednost je dodana na desnoj strani popisa.

Dodaj vrijednost lijevo

Da bismo dodali bilo koju vrijednost u deque na lijevu stranu, upotrijebit ćemo sljedeću ulaznu vrijednost. Nedjelju ćemo dodati na lijevoj strani reda. Vrijednost će se dodati na lijevu stranu popisa.

>>> ispis ("Dodavanje slijeva:")
>>> DoubleEnded.dodati ("nedjelja")
>>> ispis (DoubleEnded)


Izlaz
Nakon klika na enter, izlaz će se pojaviti sličan ovom:

Ovdje u primjeru vrijednost je dodana na lijevoj strani popisa.

Uklonite vrijednost s desne strane

Korisnici mogu ukloniti deque kako bi uklonili vrijednost s desne strane deque-a. Korisnici mogu odabrati ovu opciju za uklanjanje relevantnih vrijednosti s dequea s desne strane. Upotrijebite sljedeće retke koda:

>>> ispis ("Uklanjanje s desne strane:")
>>> DoubleEnded.pop ()
>>> ispis (DoubleEnded)

IzlazDa biste provjerili ažurirani izlaz deque, pritisnite tipku enter.

Ovdje će se vrijednost koja je prethodno bila na desnoj strani dequea, a u našem slučaju je četvrtak, ukloniti iz dequea.

Uklonite vrijednost s lijeve strane

Da bi uklonili vrijednost s lijeve strane dequea, korisnici trebaju koristiti sljedeće retke koda:

>>> print ("Uklanjanje vrijednosti s lijeve strane:")
>>> DoubleEnded.popleft ()
>>> ispis (DoubleEnded)

IzlazDa biste provjerili ažurirani izlaz deque, pritisnite tipku enter.


Ovdje će se vrijednost koja je prethodno bila na lijevoj strani dequea nedjelja ukloniti iz deque-a.

Obrtanje cijelog dequea

Da biste preokrenuli čitav deque, upotrijebite sljedeći kod:

>>> print ("Obrtanje cijelog dequea:")
>>> DoubleEnded.obrnuti ()
>>> ispis (DoubleEnded)

Kad pritisnete enter, deque će se vratiti s lijeve na desnu stranu.

Zaključak

U ovom uputstvu raspravljali smo o konceptu deque. Podijelili smo sve moguće operacije koje se mogu izvesti pomoću dequea koji je zbirka uvoza, dodavanje vrijednosti na desnu stranu dequea, dodavanje vrijednosti na lijevu stranu i uklanjanje vrijednosti s lijeve strane, uklanjanje vrijednosti s desne strane. Napokon smo razgovarali o metodi vraćanja cijelog dequea.

Mogućnosti o kojima se raspravlja u vodiču mogu se koristiti po potrebi. Korisnici se mogu odlučiti za popis ili deque na temelju svojih zahtjeva. Oboje imaju različite prednosti koje se temelje na situaciji u kojoj se jedan od njih koristi umjesto drugog. Dodjela memorije, učinkovitost i osnovne funkcionalnosti dvostrukih popisa jedine su razlike. Ovaj vodič mora biti koristan onima koji žele znati o generičkim operacijama deque-a.

Vodič za OpenTTD
OpenTTD je jedna od najpopularnijih igara za poslovnu simulaciju. U ovoj igri morate stvoriti prekrasan prijevoznički posao. Međutim, počet ćete u poč...
SuperTuxKart za Linux
SuperTuxKart sjajan je naslov osmišljen kako bi vam besplatno pružio iskustvo Mario Kart na vašem Linux sustavu. Prilično je izazovno i zabavno igrati...
Vodič za bitku za Wesnoth
Bitka za Wesnoth jedna je od najpopularnijih strateških igara otvorenog koda koje trenutno možete igrati. Ne samo da se ova igra razvija već jako dugo...