deque
Brug hurtige dobbeltsidede køer
deque er en gratis Python Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Python Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Python Academy-kurset indeholder 4 lektioner i alt.
Hvad er en deque?
En deque (udtales »deck«) er en dobbeltsidet kø fra modulet collections. Den understøtter hurtige tilføjelser og fjernelser fra begge ender.
Importér den med from collections import deque.
from collections import deque
d = deque([1, 2, 3])
print(d)Hvorfor ikke bare en liste?
Lister er langsomme, når du indsætter eller fjerner elementer i begyndelsen, fordi hvert element skal flyttes. En deque udfører operationer i begyndelsen på konstant tid, så den er ideel til køer.
from collections import deque
d = deque(['b', 'c'])
d.appendleft('a')
print(d)Tilføjelse i begge ender
Brug .append() til at tilføje til højre og .appendleft() til at tilføje til venstre.
from collections import deque
d = deque()
d.append(1)
d.append(2)
d.appendleft(0)
print(d)Fjernelse fra begge ender
.pop() fjerner og returnerer elementet længst til højre, mens .popleft() fjerner det element længst til venstre. Begge er hurtige.
from collections import deque
d = deque([10, 20, 30])
print(d.pop())
print(d.popleft())
print(d)En simpel kø (FIFO)
For først-ind-først-ud-adfærd skal du tilføje til højre og bruge popleft fra venstre. Elementerne fjernes i den rækkefølge, de ankom i.
from collections import deque
queue = deque()
queue.append('first')
queue.append('second')
print(queue.popleft())
print(queue.popleft())Begrænset deque med maxlen
Angiv en maxlen for at begrænse størrelsen. Når den er fuld, kasseres et element automatisk fra den ene ende, når du tilføjer i den anden – perfekt til at gemme den seneste historik.
from collections import deque
recent = deque(maxlen=3)
for n in [1, 2, 3, 4, 5]:
recent.append(n)
print(recent)Rotering af elementer
.rotate(n) flytter elementerne n trin mod højre, mens en negativ n roterer mod venstre. Elementerne fortsætter fra den modsatte ende.
from collections import deque
d = deque([1, 2, 3, 4, 5])
d.rotate(2)
print(d)
d.rotate(-1)
print(d)Udvidelse i større mængder
.extend() tilføjer mange elementer til højre, og .extendleft() tilføjer dem til venstre. Bemærk, at extendleft vender rækkefølgen af det, du tilføjer.
from collections import deque
d = deque([3])
d.extend([4, 5])
d.extendleft([2, 1])
print(d)Indeksering og længde
En deque understøtter indeksering ligesom en liste og fungerer med len(). Adgang til midten er langsommere end adgang til enderne, så foretræk operationer i enderne.
from collections import deque
d = deque(['a', 'b', 'c'])
print(d[0])
print(d[-1])
print(len(d))Rydning og vending
.reverse() vender deque'en på stedet, og .clear() tømmer den. Begge ændrer deque'en direkte.
from collections import deque
d = deque([1, 2, 3])
d.reverse()
print(d)
d.clear()
print(d)Optælling af forekomster
Ligesom en liste har en deque .count() til at tælle, hvor ofte en værdi forekommer.
from collections import deque
d = deque([1, 2, 2, 3, 2])
print(d.count(2))Hurtigt tjek
Du opbygger en FIFO-kø med en deque. Hvilket par af metoder giver den korrekte først-ind-først-ud-rækkefølge?
Opsummering: deque
Du har lært, at en deque:
- Understøtter hurtig
append/popi begge ender i modsætning til en liste. - Har
appendleftogpoplefttil venstre side. - Kan begrænses med
maxlen, så kun de seneste elementer bevares. - Tilbyder
rotate,extend,reverseogcounttil købaserede opgaver.
from collections import deque
q = deque(maxlen=2)
for x in ['a', 'b', 'c']:
q.append(x)
print(q)Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 76
- Lektioner
- 320
Ofte stillede spørgsmål
Er lektionen “deque” gratis?
Ja — hele teksten til “deque” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Python Academy-kurset, skal du opgradere til CoddyKit PRO. Python Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “deque”?
Brug hurtige dobbeltsidede køer Du øver dig i Python Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Python Academy?
Der kræves ingen tidligere erfaring. Python Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “deque”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Python Academy-lektion?
Ja. Alle Python Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.