Tutorial de compreensão do dicionário Python

A linguagem de programação Python oferece um conjunto exclusivo de ferramentas que torna a codificação não apenas divertida, mas também acelera seu progresso como programador. Devido à sua facilidade de uso, o Python tornou-se a linguagem ideal para uma variedade de setores, desde desenvolvimento web e ciência de dados até finanças e muito mais.

Tutorial de compreensão do dicionário Python

A compreensão do dicionário Python é uma ferramenta importante que permite gerar dicionários dinamicamente iterando estruturas de dados iteráveis ​​existentes ou dicionários para criar novos. Você pode pensar na compreensão do dicionário como semelhante à compreensão da lista, mas com um caso de uso ligeiramente diferente.

À medida que você se familiarizar com as compreensões, descobrirá que elas podem melhorar significativamente o código, promovendo clareza e eliminando a necessidade de loops longos e repetitivos.

Se você é novo em Python , talvez não tenha encontrado compreensão ou não a tenha usado em seu código. Antes de mergulhar na sintaxe, vamos abordar a questão principal: o que é a compreensão do dicionário Python?

Índice

O que é a compreensão do dicionário Python?

Python Dictionary Comprehension é uma maneira concisa de criar dicionários usando expressões simples. Ele permite que você gere novos dicionários sem a necessidade de usar for-loops.e

Vamos dar uma olhada em um exemplo de compreensão. Suponha que você tenha duas listas, uma contendo chaves e outra contendo valores:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

Usando a compreensão do dicionário, você pode criar um novo dicionário iterando as duas listas e combinando os pares chave-valor correspondentes:

my_dict = {k: v for k, v in zip(keys, values)}
print(my_dict)

A saída será:

{'a': 1, 'b': 2, 'c': 3}

Tutorial de compreensão do dicionário Python

O exemplo acima deve dar uma ideia do que são compreensões em Python . Para ajudar você a solidificar ainda mais o conceito, vamos entender a sintaxe das compreensões de dicionário em Python.

Compreendendo a sintaxe da compreensão do dicionário

A sintaxe para compreensão do dicionário é simples, mas poderosa. Eles oferecem uma maneira concisa de criar um novo dicionário em Python . Além disso, eles seguem uma sintaxe semelhante para listar a compreensão, mas usam chaves {} e um par chave-valor separado por dois pontos.

A estrutura básica é a seguinte:

{key: value for (key, value) in iterable}

Nesta sintaxe, a chave e o valor representam as expressões usadas para gerar as chaves e os valores do dicionário resultante. O iterável fornece a fonte de dados usada para criar os pares chave-valor.

Essa sintaxe foi introduzida no Python 3 e suportada até o Python 2.7, garantindo ampla compatibilidade entre as versões do Python.

Por exemplo, para criar um dicionário que mapeia números de 0 a 4 para seus quadrados usando a compreensão do dicionário, você pode usar o seguinte código Python:

square_dict = {x: x**2 for x in range(5)}

Isso resultará no seguinte dicionário:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Tutorial de compreensão do dicionário Python

E se você quiser iterar duas variáveis ​​ao mesmo tempo? Você pode conseguir isso usando a compreensão do dicionário com a função zip() para criar um dicionário de dois iteráveis, um representando as chaves e o outro representando os valores. Aqui está um exemplo:

keys = ['a', 'b', 'c', 'd', 'e']
values = [1, 2, 3, 4, 5]
my_dict = {k: v for k, v in zip(keys, values)}

O dicionário resultante será:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

Tutorial de compreensão do dicionário Python

A compreensão do dicionário também permite adicionar uma instrução if opcional no final da compreensão para aplicar um filtro condicional nos itens incluídos.

Por exemplo, você pode criar um dicionário apenas com números pares e seus quadrados usando a compreensão do dicionário:

even_square_dict = {x: x**2 for x in range(10) if x % 2 == 0}

Isto resulta em:

{0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Tutorial de compreensão do dicionário Python

Agora que você tem alguma familiaridade com a sintaxe da compreensão, vamos dar uma olhada em alguns exemplos de compreensão.

Exemplos de compreensão de dicionário

A compreensão do dicionário encontra uma variedade de casos de uso devido à sua sintaxe poderosa e elegante. Eles podem economizar seu tempo e tornar seu código mais legível.

Mapeando números para seus quadrados

Considere um exemplo simples em que você deseja criar um dicionário que mapeia números para seus quadrados usando as compreensões de dicionário do Python:

squares = {x: x**2 for x in range(1, 6)}
print(squares)

Isso produzirá:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

O código acima faz o mesmo trabalho que executar um loop seis vezes e elevar ao quadrado cada número. O código abaixo demonstra a execução de um loop para obter os quadrados dos números:

squares = {}
for x in range(1, 6):
    squares[x] = x ** 2

print(squares)

Neste ponto, você pode estar se perguntando por que usar a compreensão quando pode usar loops. Na programação, uma regra prática é escrever um código compacto e eficiente.

Você também pode aplicar condições à sua compreensão. Por exemplo, você pode querer criar um dicionário que contenha apenas números pares e seus quadrados:

even_squares = {x: x**2 for x in range(1, 6) if x % 2 == 0}
print(even_squares)

A execução desse código produzirá um novo dicionário como o seguinte:

{2: 4, 4: 16}

Chaves e valores reversos

Você também pode inverter os elementos do dicionário com facilidade com a compreensão do dicionário em Python.

O código a seguir demonstra como inverter chaves e valores de um dicionário existente usando a compreensão do dicionário:

original_dict = {"one": 1, "two": 2, "three": 3, "four": 4}
reversed_dict = {v: k for k, v in original_dict.items()}
print(reversed_dict)

A compreensão de dicionário acima (ou compreensão de dict) imprimirá o seguinte:

{1: 'one', 2: 'two', 3: 'three', 4: 'four'}

Tutorial de compreensão do dicionário Python

Para obter uma boa compreensão do que são dicionários e como você pode usá-los para diferentes casos, consulte o vídeo abaixo:

Os exemplos fornecidos servem como uma base sólida para empregar a compreensão do dicionário em seus projetos Python.

Além disso, a compreensão do dicionário pode ser ainda mais otimizada, permitindo que uma única linha de código realize tarefas complexas que podem consumir mais tempo e memória com loops.

3 Principais Vantagens da Compreensão de Dicionário

Você experimentou a elegância da compreensão do dicionário por meio dos exemplos fornecidos. Além da legibilidade, as compreensões oferecem várias vantagens, incluindo eficiência, ao trabalhar com a eficiente estrutura de tabela de hash de chave/valor do Python, chamada compreensão de dict .

1. Criando Código Claro e Simples

As compreensões permitem que você crie novos dicionários sem esforço e de maneira legível. Eles fazem seu código parecer mais Pythonic em comparação com loops tradicionais.

2. Melhor desempenho com estilo

As compreensões não são apenas elegantes, mas também eficientes. Freqüentemente, eles funcionam mais rápido do que os loops for, pois usam uma única expressão. O Python otimiza esse tipo de código, eliminando a necessidade de chamar repetidamente o construtor de dicionário ou usar o método update().

3. Fácil filtragem e transformação de dados

Outra vantagem da compreensão do dicionário é sua simplicidade na filtragem e transformação de dados. Por exemplo, você pode criar um novo dicionário a partir de um existente aplicando uma condição ou modificando as chaves ou valores.

É crucial entender quando usar a compreensão de dicionário em Python, pois eles podem rapidamente se tornar complexos e difíceis de ler e escrever. Agora, vamos explorar alguns casos de uso para compreensão de dicionário em Python.

3 exemplos de quando usar a compreensão de dicionário

As compreensões são úteis nos 3 cenários a seguir:

1. Ao criar um dicionário de duas listas

{key:value for key, value in zip(list1, list2)}

2. Ao filtrar um dicionário com base no valor

{k: v for k, v in original_dict.items() if v > threshold}

3. Ao transformar chaves ou valores

{k.upper(): v * 2 for k, v in original_dict.items()}

É importante lembrar que, embora as compreensões possam tornar seu código mais elegante e eficiente, elas também podem se tornar difíceis de ler se forem excessivamente complexas.

Vejamos algumas das armadilhas mais comuns ao usar as compreensões de dicionário.

Armadilhas da compreensão do dicionário

A compreensão do dicionário traz elegância e eficiência, mas também traz desafios. Discutiremos armadilhas comuns relacionadas à legibilidade, complexidade e desempenho com grandes conjuntos de dados.

Equilibrando Complexidade e Legibilidade

Compreensões de dicionário complexas podem ser difíceis de ler. Priorize a legibilidade do código, especialmente ao trabalhar com outras pessoas. Em alguns casos, os loops for tradicionais podem ser mais simples e mais fáceis de manter.

Desempenho com grandes conjuntos de dados

Para grandes conjuntos de dados, a compreensão do dicionário pode nem sempre ser ideal. De acordo com o Stack Overflow , um construtor dict() integrado pode superar as compreensões do dicionário com vários pares chave-valor devido ao loop em C.

Comparação com outros métodos

Nesta seção, compararemos as compreensões de dicionário com dois métodos alternativos de criação de dicionários em Python: loops for e funções lambda.

For Loop

Usar um loop for para criar um dicionário envolve inicializar um dicionário vazio e, em seguida, iterar pelo par de valor-chave válido desejado, adicionando cada par ao dicionário. Este é um método mais detalhado em comparação com a compreensão do dicionário.

Veja a seguir um exemplo de criação de dicionário usando loops for:

dictionary = {}
for key, value in zip(keys, values):
    dictionary[key] = value

Por outro lado, uma compreensão de dicionário permite alcançar o mesmo resultado em uma única linha:

dictionary = {key: value for key, value in zip(keys, values)}

Tutorial de compreensão do dicionário Python

Como você pode ver, as compreensões fornecem uma maneira concisa e mais legível de criar dicionários em Python.

Funções Lambda

Também podemos usar funções do Lambda para criar dicionários. As funções Lambda são uma maneira de criar funções pequenas e anônimas em Python. Eles podem ser usados ​​em conjunto com a função map() para criar um dicionário.

Vejamos um exemplo de funções do Lambda para criar dicionários:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

key_value_pairs = map(lambda key, value: (key, value), keys, values)
dictionary = dict(key_value_pairs)

Em comparação, veja como o mesmo dicionário pode ser criado usando a compreensão:

dictionary = {key: value for key, value in zip(keys, values)}

Tutorial de compreensão do dicionário Python

Novamente, a compreensão do dicionário fornece uma alternativa concisa e mais legível para criar dicionários usando funções lambda e a função map().

Práticas recomendadas para compreensão de dicionário

Ao usar compreensões em Python, é essencial seguir as práticas recomendadas para melhorar a legibilidade, manutenção e eficiência. Aqui estão algumas práticas recomendadas a serem consideradas:

1. Mantenha a compreensão do dicionário simples

A compreensão do dicionário é poderosa, mas deve ser clara e concisa. Se sua compreensão ficar muito complexa ou abranger várias linhas, considere usar um loop for tradicional. Isso ajuda na compreensão do código, especialmente para outras pessoas ou ao revisitar seu trabalho mais tarde.

2. Aproveite as funções integradas

Python oferece funções integradas como zip() e enumerate() que ajudam a criar compreensões. Use essas funções para simplificar seu código e torná-lo mais legível.

Por exemplo, usar zip() para combinar duas listas e criar um dicionário resulta em um código limpo e conciso como este:

{key: value for key, value in zip(keys, values)}

3. Use declarações condicionais com sabedoria

Incorpore declarações condicionais em suas compreensões quando necessário, mas não as use demais. Eles podem ajudar a filtrar ou modificar o dicionário resultante, mas muitas condições aninhadas podem dificultar a leitura do código. Um exemplo simples envolvendo uma instrução condicional é:

{x: x**2 for x in range(10) if x % 2 == 0}

4. Esteja atento à compreensão do dicionário aninhado

A compreensão de dicionário aninhada pode gerar dicionários com estruturas aninhadas. No entanto, como as declarações condicionais, um excesso de dicionário aninhado pode tornar o código mais difícil de decifrar. Evite ir além de dois níveis de aninhamento em sua compreensão de dicionário aninhado.

Às vezes, você pode ter que usar a compreensão de dicionário aninhada dentro de loops para obter a eficiência desejada.

Nossa última palavra

Até agora, você dominou a compreensão do dicionário em Python. Essa técnica elegante e eficiente ajuda a criar dicionários iterando sobre iteráveis ​​ou usando condições. As compreensões simplificam seu código, aumentando a legibilidade e a capacidade de manutenção.

A criação de novos dicionários é fácil com compreensão, economizando tempo e esforço em comparação com os loops for tradicionais. Eles são úteis em aplicativos do mundo real, como processamento de dados, mapeamento e transformação.

Se você deseja aprofundar seu conhecimento em Python e se tornar um verdadeiro profissional, em nosso curso de Python e veja como estamos criando os melhores usuários de Python do mundo.

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

Colunas calculadas no SharePoint | Uma visão geral

Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.