Dicionários e conjuntos

Associações por chave, frequências, operações de conjuntos e escolha de estruturas.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Dicionários

  • {"Ana": 15} associa a chave ao valor; d["Ana"] consulta-a. Atribuir à mesma chave substitui o valor; del d[chave] elimina a associação.

  • Chaves têm de ser hashable: hash estável e objetos iguais com hashes iguais. Strings, inteiros e tuplos de elementos hashable servem; listas, dicionários e conjuntos mutáveis não.

  • Valores podem ser mutáveis. Para agrupar listas por chave, cria uma lista própria por grupo, evitando partilha acidental.

  • chave in d testa chaves. d[chave] lança KeyError se faltar; d.get(chave, padrao) devolve o padrão sem inserir.

  • keys, values e items permitem percorrer chaves, valores e pares. A ordem de inserção é conservada, mas não é uma ordenação por chave. Não alteres o conjunto de chaves durante o percurso.

Contar frequências
contagem = {}
for nome in ["Ana", "Bruno", "Ana"]:
    contagem[nome] = contagem.get(nome, 0) + 1
print(contagem)
Resultado

Executa o código para ver a saída e os gráficos.

A saída é {'Ana': 2, 'Bruno': 1}.

  • Cada ocorrência acrescenta 1; o padrão zero inicia uma chave nova.
  • Uma entrada vazia deixa {}. Usa sorted(contagem) apenas se a apresentação exigir chaves ordenadas.

Conjuntos

  • Um set guarda elementos únicos e hashable, sem índices nem ordem de saída garantida.
  • set() é o conjunto vazio; {} é um dicionário.
PythonRobóticaAnaCarlaBrunoDuarte
As duas regiões sobrepõem-se apenas em Bruno.

No esquema, Python tem Ana, Bruno e Carla; Robótica tem Bruno e Duarte. A tabela lê-se contra o diagrama:

OperaçãoSeleçãoResultado
A | BPelo menos um conjuntoAna, Bruno, Carla, Duarte
A & BAmbosBruno
A - BA sem BAna, Carla
A ^ BExatamente umAna, Carla, Duarte
  • A diferença não é comutativa: B - A contém Duarte.
  • A <= B testa inclusão; A < B exige inclusão e conjuntos diferentes.
  • add acrescenta; discard retira se existir; remove falha se faltar. frozenset é imutável e pode ser chave de dicionário.

Escolha da estrutura

Precisas deUsa
Ordem e repetiçõesLista
Sequência sem alterar o recipienteTuplo
Unicidade, sem duplicadosConjunto
Associações, contagens ou agrupamentosDicionário

Converter ['Ana', 'Ana', 'Bruno'] em conjunto perde as frequências.

Para eliminar repetidos mantendo a primeira ocorrência, percorre a lista com um conjunto de vistos: acrescenta à saída apenas os nomes ainda não vistos.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.