🎯 Compreensão de Dicionários em Python

Em poucas palavras

Definição técnica ou simplificada do conceito.


📝 Notas e Desenvolvimento


🔗 Conexões e Contexto


📚 Referências e Fontes

Citações Diretas

📂 Outros Conteúdos Preservados

Sintaxe Básica

A sintaxe de uma compreensão de dicionários é semelhante à de listas, mas utiliza chaves {} e especifica pares chave: valor:

novo_dicionario = {chave_expressao: valor_expressao for item in iteravel if condicao}

Onde:

  • chave_expressao: A expressão que define a chave para cada item no novo dicionário.
  • valor_expressao: A expressão que define o valor para cada item no novo dicionário.
  • item: A variável que representa cada elemento do iterável.
  • iteravel: A coleção de elementos sobre a qual iterar.
  • condicao (opcional): Um filtro para incluir apenas os itens que satisfazem a condição.

Exemplos

1. Criando um dicionário a partir de uma lista de tuplas:

Este é um caso comum onde você tem uma lista de pares (como tuplas) e deseja transformá-los em um dicionário.

dial_codes = [
    (880, 'Bangladesh'),
    (55, 'Brazil'),
    (86, 'China'),
    (91, 'India'),
    (62, 'Indonesia'),
    (81, 'Japan'),
    (234, 'Nigeria'),
    (92, 'Pakistan'),
    (7, 'Russia'),
    (1, 'United States'),
]
 
### Criando um dicionário onde a chave é o nome do país e o valor é o código de discagem
 
country_dial = {country: code for code, country in dial_codes}
 
print(country_dial)
 
### Saída: {'Bangladesh': 880, 'Brazil': 55, 'China': 86, 'India': 91, 'Indonesia': 62, 'Japan': 81, 'Nigeria': 234, 'Pakistan': 92, 'Russia': 7, 'United States': 1}
 

Neste exemplo, code, country utiliza o desempacotamento de tuplas para atribuir os elementos de cada tupla nas variáveis code e country durante a iteração.

2. Criando um dicionário a partir de uma lista, com transformação e filtro:

numeros = [1, 2, 3, 4, 5, 6]
 
### Criar um dicionário onde a chave é o número e o valor é o seu quadrado,
 
 
 
### mas apenas para números pares.
 
quadrados_pares = {num: num**2 for num in numeros if num % 2 == 0}
 
print(quadrados_pares)
 
### Saída: {2: 4, 4: 16, 6: 36}
 

3. Invertendo um dicionário:

dicionario_original = {'a': 1, 'b': 2, 'c': 3}
 
### Invertendo chaves e valores
 
dicionario_invertido = {valor: chave for chave, valor in dicionario_original.items()}
 
print(dicionario_invertido)
 
### Saída: {1: 'a', 2: 'b', 3: 'c'}
 

Vantagens

  • Concisão: Permite criar dicionários complexos em uma única linha de código, tornando-o mais legível do que loops for tradicionais.
  • Eficiência: Geralmente mais rápido do que construir dicionários usando loops for e o método dict.update() ou dict[key] = value.
  • Clareza: A estrutura chave: valor for item in iteravel é intuitiva e expressa claramente a intenção de criar um dicionário.

A compreensão de dicionários é uma ferramenta poderosa no Python para manipulação de dados, especialmente quando se trabalha com transformações e filtros em coleções.

:: Referência :: Site oficial do Python sobre compreensões de lista