0Pricing
Python Academy · Aula

deque

Use filas rápidas com duas extremidades

deque é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

O que é uma fila de duas extremidades?

Uma deque (pronuncia-se 'déque') é uma fila de duas extremidades do módulo collections. Ela permite adicionar e remover elementos rapidamente em ambas as extremidades.

Importe-a com from collections import deque.

from collections import deque
d = deque([1, 2, 3])
print(d)

Por que não usar apenas uma lista?

As listas são lentas quando você insere ou remove elementos na frente, porque todos os elementos precisam ser deslocados. Uma deque realiza operações na frente em tempo constante, sendo ideal para filas.

from collections import deque
d = deque(['b', 'c'])
d.appendleft('a')
print(d)

Adição nas duas extremidades

Use .append() para adicionar à direita e .appendleft() para adicionar à esquerda.

from collections import deque
d = deque()
d.append(1)
d.append(2)
d.appendleft(0)
print(d)

Remoção nas duas extremidades

.pop() remove e retorna o item mais à direita; .popleft() remove o item mais à esquerda. Ambos são rápidos.

from collections import deque
d = deque([10, 20, 30])
print(d.pop())
print(d.popleft())
print(d)

Uma fila simples (FIFO)

Para obter o comportamento primeiro a entrar, primeiro a sair, adicione à direita e use popleft à esquerda. Os itens saem na ordem em que chegaram.

from collections import deque
queue = deque()
queue.append('first')
queue.append('second')
print(queue.popleft())
print(queue.popleft())

Fila de extremidades duplas limitada por comprimento máximo

Forneça um maxlen para limitar o tamanho. Quando estiver cheia, adicionar itens a uma extremidade descarta automaticamente um item da outra — excelente para manter o histórico recente.

from collections import deque
recent = deque(maxlen=3)
for n in [1, 2, 3, 4, 5]:
    recent.append(n)
print(recent)

Rotação de elementos

.rotate(n) desloca os itens para a direita em n passos; um n negativo faz a rotação para a esquerda. Os elementos dão a volta.

from collections import deque
d = deque([1, 2, 3, 4, 5])
d.rotate(2)
print(d)
d.rotate(-1)
print(d)

Extensão em bloco

.extend() adiciona vários itens à direita e .extendleft() os adiciona à esquerda. Observe que extendleft inverte a ordem dos itens adicionados.

from collections import deque
d = deque([3])
d.extend([4, 5])
d.extendleft([2, 1])
print(d)

Indexação e comprimento

Uma fila de extremidades duplas aceita indexação como uma lista e funciona com len(). Acessar o meio é mais lento do que acessar as extremidades; portanto, prefira operações nas extremidades.

from collections import deque
d = deque(['a', 'b', 'c'])
print(d[0])
print(d[-1])
print(len(d))

Limpeza e inversão

.reverse() inverte a fila de extremidades duplas no próprio lugar, e .clear() a esvazia. Ambos modificam a fila diretamente.

from collections import deque
d = deque([1, 2, 3])
d.reverse()
print(d)
d.clear()
print(d)

Contagem de ocorrências

Assim como uma lista, uma fila de extremidades duplas tem .count() para contar quantas vezes um valor aparece.

from collections import deque
d = deque([1, 2, 2, 3, 2])
print(d.count(2))

Verificação rápida

Você cria uma fila FIFO com uma fila de extremidades duplas. Qual par de métodos produz a ordem correta de primeiro a entrar, primeiro a sair?

Recapitulação: fila de extremidades duplas

Você aprendeu que uma deque:

  • Oferece append/pop rápidos nas duas extremidades, ao contrário de uma lista.
  • Tem appendleft e popleft para o lado esquerdo.
  • Pode ser limitada com maxlen para manter apenas os itens recentes.
  • Oferece rotate, extend, reverse e count para operações no estilo de fila.
from collections import deque
q = deque(maxlen=2)
for x in ['a', 'b', 'c']:
    q.append(x)
print(q)

Perguntas Frequentes

A aula “deque” é grátis?

Sim — o texto completo de “deque” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “deque”?

Use filas rápidas com duas extremidades Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python Academy?

Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “deque”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python Academy?

Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Counter
  2. defaultdict
  3. deque
  4. namedtuple e OrderedDict
← Voltar para Python Academy