Coletânea Python do ZERO às Redes Neurais Artificiais

Fernando Feltrin · Capítulo 149 de 287

Páginas do PDF

Coletânea Python do ZERO às Redes Neurais Artificiais

Dictionary Comprehension

Uma vez entendida a lógica de list comprehension, o mesmo pode ser feito com dados em formato de dicionário, respeitando, claro, sua sintaxe.

Contextualizando, enquanto trabalhamos com dados em formato de lista,

estamos acostumados a respeitar cada dado/valor como simples elemento da lista, já no âmbito de dicionários, estamos habituados a trabalhar com dados em formato de chave:valor.

Sendo assim, podemos facilmente adaptar nossas “comprehensions” de

modo que iteramos sobre dois objetos, um para a chave e outro para valor, respectivamente.

 

Exemplificando, inicialmente temos uma variável de nome lista, em seu

conteúdo, alguns pares de dados entre parênteses e com seus devidos separadores.

A partir disso, podemos realizar a conversão desta lista para um

dicionário por meio de comprehension.

Sendo assim, criamos uma variável de nome dicionario que recebe como

atributo uma expressão em forma de dicionário de acordo com a sintaxe. Na expressão em si, simplesmente criamos duas variáveis temporárias x e y que percorrerão separadamente via laço for os dados de lista.

 

Por meio da função print( ) passando como parâmetro o conteúdo de

dicionario, é nos retornado um dicionário onde cada par de dados de lista foi adaptado em formato de chave:valor de dicionario.

A este ponto você deve estar se perguntando qual a justificativa lógica

para um exemplo desses, haja visto que existe uma forma mais fácil de fazer tal conversão pelo próprio método dict( ) nativo do Python.

Nesse caso, de fato apenas realizamos a conversão de um tipo de dado para outro, porém, lembre-se que a grande vantagem de usar comprehensions é reduzir o código, logo, o uso convencional de uma comprehension em um dicionário é fazendo o uso de expressões e operações no momento de sua criação/adaptação.

Tanto na linha 3 quanto na linha 4 o resultado será o mesmo, cabendo ao desenvolvedor optar por qual método julga mais eficiente.

 

Repare que nesse caso, ambos retornos da função print( ), para ambas

variáveis dicionario e dicionario2 são exatamente iguais.

 

Partindo para uma aplicação real, inicialmente criamos uma variável de

nome produtos, onde simplesmente seu conteúdo é uma lista , onde cada elemento da mesma é um par de dados simulando um determinado item com seu respectivo preço.

Supondo que tivéssemos de aplicar um determinado valor de imposto sobre os valores de tais itens, agora sim temos uma boa justificativa para o uso de dict comprehension.

Para esse fim é criada a variável produtos_com_imposto, que por sua vez recebe uma expressão que percorre cada elemento de produtos multiplicando, quando possível, seu valor por 1.6.

 

Como retorno das funções print( ) temos os valores iniciais e os valores

após a aplicação do imposto fictício. Note que por meio da expressão usada em nossa comprehension, apenas os elementos de tipo int e float foram submetidos a operação aritmética, mantendo as strings ordenadas sem alteração.