🎯 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
- Atlas: MdC - Programação
- Notas Relacionadas:
📚 Referências e Fontes
Links Externos
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
fortradicionais. - Eficiência: Geralmente mais rápido do que construir dicionários usando loops
fore o métododict.update()oudict[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