deque
Käytä nopeita kaksipäisiä jonoja
deque on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 4 oppituntia.
Mikä deque on?
deque (lausutaan englannin sanan deck tavoin) on collections-moduulin kaksipäinen jono. Siihen voi lisätä alkioita ja poistaa niitä nopeasti molemmista päistä.
Tuokaa se käyttöön komennolla from collections import deque.
from collections import deque
d = deque([1, 2, 3])
print(d)Miksi ei vain list?
Listat ovat hitaita, kun alkio lisätään niiden alkuun tai poistetaan sieltä, koska jokaisen alkion on siirryttävä. deque käsittelee alkupään operaatiot vakioajassa, joten se sopii erinomaisesti jonoihin.
from collections import deque
d = deque(['b', 'c'])
d.appendleft('a')
print(d)Lisääminen kumpaankin päähän
Käyttäkää .append()-menetelmää lisäämiseen oikealle ja .appendleft()-menetelmää lisäämiseen vasemmalle.
from collections import deque
d = deque()
d.append(1)
d.append(2)
d.appendleft(0)
print(d)Poistaminen kummastakin päästä
.pop() poistaa oikeanpuoleisen alkion ja palauttaa sen; .popleft() poistaa vasemmanpuoleisen alkion. Molemmat ovat nopeita.
from collections import deque
d = deque([10, 20, 30])
print(d.pop())
print(d.popleft())
print(d)Yksinkertainen jono (FIFO)
Kun haluatte FIFO-toiminnan, lisätkää alkioita oikealle ja poistakaa niitä vasemmalta popleft-menetelmällä. Alkiot poistuvat saapumisjärjestyksessä.
from collections import deque
queue = deque()
queue.append('first')
queue.append('second')
print(queue.popleft())
print(queue.popleft())Rajattu deque maxlen-arvolla
Antakaa maxlen-arvo rajoittamaan kokoa. Kun deque on täynnä, alkion lisääminen toiseen päähän poistaa automaattisesti alkion toisesta päästä – tämä sopii erinomaisesti viimeisimmän historian säilyttämiseen.
from collections import deque
recent = deque(maxlen=3)
for n in [1, 2, 3, 4, 5]:
recent.append(n)
print(recent)Alkioiden kiertäminen
.rotate(n) siirtää alkioita oikealle n askelta; negatiivinen n kiertää niitä vasemmalle. Alkiot kiertyvät takaisin toisesta päästä.
from collections import deque
d = deque([1, 2, 3, 4, 5])
d.rotate(2)
print(d)
d.rotate(-1)
print(d)Joukkolisäys
.extend() lisää useita alkioita oikealle ja .extendleft() lisää niitä vasemmalle. Huomioikaa, että extendleft kääntää lisättävien alkioiden järjestyksen.
from collections import deque
d = deque([3])
d.extend([4, 5])
d.extendleft([2, 1])
print(d)Indeksointi ja pituus
Deque tukee indeksointia listan tapaan ja toimii len()-funktion kanssa. Keskeltä hakeminen on hitaampaa kuin päistä, joten suosikaa päihin kohdistuvia toimintoja.
from collections import deque
d = deque(['a', 'b', 'c'])
print(d[0])
print(d[-1])
print(len(d))Tyhjentäminen ja kääntäminen
.reverse() kääntää dequen paikallaan, ja .clear() tyhjentää sen. Molemmat muokkaavat dequeta suoraan.
from collections import deque
d = deque([1, 2, 3])
d.reverse()
print(d)
d.clear()
print(d)Esiintymien laskeminen
Listan tavoin deque sisältää .count()-menetelmän, jolla voitte laskea, kuinka monta kertaa arvo esiintyy.
from collections import deque
d = deque([1, 2, 2, 3, 2])
print(d.count(2))Pikatarkistus
Rakennatte FIFO-jonon dequen avulla. Mikä metodipari tuottaa oikean first-in-first-out-järjestyksen?
Kertaus: deque
Opitte, että deque:
- tukee nopeita
append/pop-toimintoja kummassakin päässä, toisin kuin lista. - sisältää
appendleft- japopleft-menetelmät vasenta päätä varten. - voidaan rajata
maxlen-arvolla säilyttämään vain viimeisimmät alkiot. - tarjoaa jonotyyppiseen käsittelyyn menetelmät
rotate,extend,reversejacount.
from collections import deque
q = deque(maxlen=2)
for x in ['a', 'b', 'c']:
q.append(x)
print(q)Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 76
- Oppitunnit
- 320
Usein kysytyt kysymykset
Onko oppitunti ”deque” ilmainen?
Kyllä – oppitunnin ”deque” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”deque”?
Käytä nopeita kaksipäisiä jonoja Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”deque”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?
Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.