Listas e Tuplas
Listas e tuplas são as principais sequências ordenadas do Python. Listas se destacam quando você precisa de mutabilidade e métodos como sort; tuplas sinalizam registros fixos e permitem hashability quando o conteúdo permite.
Busque em todas as páginas da documentação
Listas e tuplas são as principais sequências ordenadas do Python. Listas se destacam quando você precisa de mutabilidade e métodos como sort; tuplas sinalizam registros fixos e permitem hashability quando o conteúdo permite.
nums = [3, 1, 4, 1, 5]
nums.sort()
unique_sorted = sorted(set(nums))
row = ("ada", 1842)
name, year = row
subset = nums[1:4:2]Quando usar isso:
append/popbisectimport bisect
from typing import NamedTuple
class Event(NamedTuple):
ts: float
kind: str
def top_k(items: list[int], k: int) -> list[int]:
return sorted(items, reverse=True)[:k]
def insert_timestamped(events: list[Event], ts: float, kind: str) -> None:
bisect.insort(events, Event(ts, kind))
def partition(pred, items: list[object]) -> tuple[list[object], list[object]]:
yes, no = [], []
for item in items:
(yes if pred(item) else no).append(item)
return yes, no
if __name__ == "__main__":
timeline: list[Event] = []
insert_timestamped(timeline, 1.0, "start")
insert_timestamped(timeline, 0.5, "warmup")
print(timeline)
print(top_k([4, 1, 7, 3], 2))O que isso demonstra:
NamedTuple dá imutabilidade de tupla com campos nomeadosbisect.insort mantém a ordem ordenada para inserçõessorted retorna nova lista sem mutar a originalpartitionappend amortizado O(1).start:stop:step cria cópia rasa de porção da sequência.key= evita decoração manual.| Necessidade | Escolha |
|---|---|
| Mutar, adicionar, ordenar | list |
| Chave de dicionário / membro de conjunto | tuple (se hashable) |
| Pacote de retorno de função | tuple ou NamedTuple |
| Buffer numérico homogêneo | array.array ou numpy |
# cópia vs visualização
a = [1, 2, 3]
b = a[:] # cópia rasa
c = list(a) # o mesmo
# desempacotamento de tupla com *
first, *middle, last = (1, 2, 3, 4)copy.deepcopy.TypeError no Python 3. Correção: Normalizar para valores comparáveis ou usar key.+= cria nova tupla - t += (1,) rebinda; não muta a tupla (imutabilidade). Correção: Esperado - atribuir nova tupla.| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
deque | Fila/pilha em ambas as extremidades | Precisa ordenar/acessar aleatoriamente por índice com frequência |
array.array | Tipos numéricos C compactos | Tipos de objetos mistos |
numpy.ndarray | Numéricos vetorizados | Listas de scripts pequenos |
dataclass | Registros mutáveis com métodos | Precisa de registro hashable/imutável |
Tupla é convencional para retornos de formato fixo (valor, erro). Use NamedTuple quando os campos precisam de nomes.
list.sort() muta no local retornando None. sorted(iterable) retorna nova lista - funciona em qualquer iterável.
-1 é o último elemento. O slice [:-1] exclui o último item.
Inserções frequentes em uma lista majoritariamente ordenada onde a varredura linear prejudicaria - tamanhos modestos ainda funcionam bem com lista simples.
Sim, mas então a tupla não é hashable. Não pode ser usada como chave de dicionário.
extend muta no local. + cria nova lista - mais lento para sequências grandes.
Itere uma cópia ou construa nova lista - mutar durante a iteração pula elementos.
Frequentemente para map/filter. Loop simples é mais claro para ramificações complexas ou efeitos colaterais.
Calcula a chave de ordenação uma vez por elemento: sorted(users, key=lambda u: u.name.lower()).
items.reverse() ou items[::-1] para cópia.
Versões do 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