Noções Básicas de Estruturas de Dados
9 exemplos para você começar com os contêineres embutidos do Python - 6 básicos e 3 intermediários.
Busque em todas as páginas da documentação
9 exemplos para você começar com os contêineres embutidos do Python - 6 básicos e 3 intermediários.
Adicione, indexe e fatie sequências.
items = ["a", "b", "c"]
items.append("d")
first = items[0]
middle = items[1:3]Relacionado: Listas e Tuplas - ordenação e bisect
Agrupe valores relacionados que não devem mudar.
point = (10, 20)
x, y = point
record = ("ada", 1842)(42,).for.Relacionado: Imutabilidade e Hashability - quando tuplas são chaves de dicionário
Pesquisa rápida por chave hashable.
user = {"id": 1, "name": "Ada"}
user["email"] = "ada@example.com"
for key, value in user.items():
print(key, value)Relacionado: Dicionários - mesclagem e visualizações
Pertinência e álgebra de conjuntos.
tags = {"python", "data", "python"}
tags.add("ml")
assert "data" in tags
common = {"a", "b"} & {"b", "c"} # {"b"}{} apenas para dicionários - conjuntos precisam de set() ou {"x"} com valores.in - ótimo para verificações de deduplicação.|, &, -.Relacionado: Conjuntos e Frozensets - frozenset como chave de dicionário
| Operação | list | dict | set |
|---|---|---|---|
| Índice i | O(1) | - | - |
| Pertinência | O(n) | O(1)* | O(1)* |
| Adicionar | O(1)* | - | - |
| Inserir no meio | O(n) | - | - |
*Caso médio; colisões de hash no pior caso degradam dict/set.
set/dict quando precisar de pertinência rápida.list quando ordem e duplicatas importam com acesso por índice.Relacionado: Escolhendo a Estrutura de Dados Certa - guia de decisão
Adição/remoção rápida de ambas as extremidades.
from collections import deque
queue: deque[str] = deque()
queue.append("job-1")
queue.append("job-2")
next_job = queue.popleft()list.pop(0) é O(n); deque.popleft() é O(1).maxlen opcional descarta os itens mais antigos automaticamente.heapq para ordenação por prioridade.Relacionado: Módulo collections - Counter e defaultdict
Evite verificações manuais de existência de chave ao construir grupos.
from collections import defaultdict
by_role: defaultdict[str, list[str]] = defaultdict(list)
for name, role in [("Ada", "admin"), ("Linus", "dev"), ("Guido", "dev")]:
by_role[role].append(name)setdefault quando o padrão for um mutável novo.Relacionado: Módulo collections - API completa
Conte itens hashable em uma única passagem.
from collections import Counter
words = ["a", "b", "a", "c", "a", "b"]
counts = Counter(words)
print(counts.most_common(2)) # [('a', 3), ('b', 2)]elements() expande contagens de volta para itens repetidos.Acesso a campos legível sem uma classe completa.
from typing import NamedTuple
class Point(NamedTuple):
x: int
y: int
p = Point(3, 4)
print(p.x, p.y)dataclass é frequentemente melhor quando você precisa de padrões ou métodos.TypedDict se encaixa em dicionários em formato JSON que permanecem dicionários em tempo de execução.Relacionado: TypedDict e NamedTuple - tipando registros
Versões de Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ e uv 0.6+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026