deque
Använd snabba dubbellänkade köer
deque är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.
Vad är en deque?
En deque (uttalas ”deck”) är en kö med två ändar från modulen collections. Den stöder snabba tillägg och borttagningar från båda ändarna.
Importera den med from collections import deque.
from collections import deque
d = deque([1, 2, 3])
print(d)Varför inte bara en lista?
Listor är långsamma när du infogar eller tar bort element längst fram, eftersom varje element måste flyttas. En deque utför operationer längst fram på konstant tid, vilket gör den idealisk för köer.
from collections import deque
d = deque(['b', 'c'])
d.appendleft('a')
print(d)Lägga till i båda ändarna
Använd .append() för att lägga till till höger och .appendleft() för att lägga till till vänster.
from collections import deque
d = deque()
d.append(1)
d.append(2)
d.appendleft(0)
print(d)Ta bort från båda ändarna
.pop() tar bort och returnerar det högra elementet, medan .popleft() tar bort det vänstra. Båda operationerna är snabba.
from collections import deque
d = deque([10, 20, 30])
print(d.pop())
print(d.popleft())
print(d)En enkel kö (FIFO)
För FIFO-beteende lägger du till element till höger och tar bort dem från vänster med popleft. Elementen lämnar kön i den ordning de kom in.
from collections import deque
queue = deque()
queue.append('first')
queue.append('second')
print(queue.popleft())
print(queue.popleft())Begränsad deque med maxlen
Ange ett maxlen för att begränsa storleken. När kön är full tas ett element automatiskt bort från den ena änden när du lägger till ett element i den andra – perfekt när du bara vill behålla den senaste historiken.
from collections import deque
recent = deque(maxlen=3)
for n in [1, 2, 3, 4, 5]:
recent.append(n)
print(recent)Rotera element
.rotate(n) flyttar elementen åt höger med n steg. Ett negativt n roterar åt vänster. Elementen flyttas runt och återkommer i andra änden.
from collections import deque
d = deque([1, 2, 3, 4, 5])
d.rotate(2)
print(d)
d.rotate(-1)
print(d)Utöka med flera element
.extend() lägger till flera element till höger och .extendleft() lägger till dem till vänster. Observera att extendleft vänder på ordningen för det du lägger till.
from collections import deque
d = deque([3])
d.extend([4, 5])
d.extendleft([2, 1])
print(d)Indexering och längd
En deque stöder indexering på samma sätt som en lista och fungerar med len(). Det går långsammare att komma åt mitten än ändarna, så använd helst operationer i ändarna.
from collections import deque
d = deque(['a', 'b', 'c'])
print(d[0])
print(d[-1])
print(len(d))Tömma och vända
.reverse() vänder deque:n på plats, och .clear() tömmer den. Båda ändrar deque:n direkt.
from collections import deque
d = deque([1, 2, 3])
d.reverse()
print(d)
d.clear()
print(d)Räkna förekomster
Precis som en lista har en deque .count() för att räkna hur många gånger ett värde förekommer.
from collections import deque
d = deque([1, 2, 2, 3, 2])
print(d.count(2))Snabbtest
Du bygger en FIFO-kö med en deque. Vilket metodpar ger korrekt först-in-först-ut-ordning?
Sammanfattning: deque
Du har lärt dig att en deque:
- Stöder snabba
append/pop-operationer i båda ändarna, till skillnad från en lista. - Har
appendleftochpopleftför den vänstra sidan. - Kan begränsas med
maxlenså att bara de senaste elementen behålls. - Erbjuder
rotate,extend,reverseochcountför köliknande arbete.
from collections import deque
q = deque(maxlen=2)
for x in ['a', 'b', 'c']:
q.append(x)
print(q)Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 76
- Lektioner
- 320
Vanliga frågor
Är lektionen ”deque” gratis?
Ja – hela texten till ”deque” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”deque”?
Använd snabba dubbellänkade köer Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Python Academy?
Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”deque”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Python Academy-lektionen?
Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.