Coletânea Python do ZERO às Redes Neurais Artificiais
List Comprehension
Avançando um pouco no que diz respeito a manipulação de dados a partir de uma lista, iremos otimizar nossos códigos fazendo o uso da chamada List Comprehension sobre nossas listas.
A linguagem Python, como já mencionado anteriormente, é uma linguagem dinâmica onde temos diversas possibilidades de codificar a mesma coisa, também não é nenhum segredo que a partir da versão 3 da mesma foram implementadas uma série de novas funcionalidades, assim como o aprimoramento de funcionalidades já existentes.
Quando dominamos a sintaxe básica da linguagem, tanto em sua forma estruturada quanto orientada a objetos, temos rotineiramente um grande uso de dados em formato de listas.
Pensando nesse quesito, ao longo das atualizações da linguagem Python foram implementadas diversas novas funcionalidades específicas para manipulação de dados a partir de listas.
Uma das formas mais modernas e ao mesmo tempo eficientes é a chamada List Comprehension.
Como exemplo inicial, vamos simplesmente supor que temos uma lista qualquer com alguns elementos e precisamos multiplicar cada um desses elementos por 2.
O método convencional, adotado por boa parte dos estudantes de Python é criar um laço de repetição for que percorre cada um dos elementos da lista e retorna seu valor multiplicado.
Otimizando nosso código, repare que temos exatamente a mesma lista, porém agora criamos uma nova variável de nome lista2, que recebe como atributo uma list comprehension realizando a mesma função do exemplo anterior, porém de forma reduzida e otimizada via list comprehension.
Vamos entender ponto a ponto o que está acontecendo aqui, preste muita atenção a lista atribuída para lista2, em formato de lista está uma expressão que realiza o mesmo procedimento do laço for feito anteriormente, importando os dados de lista1.
O que pode parecer um pouco estranho inicialmente é que pela conotação da sintaxe Python estamos acostumados a, quando criamos uma lista manualmente, abrir e fechar colchetes e já alimentar a lista com seus respectivos dados.
Na chamada List Comprehension podemos usar de expressões lógicas e aritméticas diretamente dentro dos colchetes da função, sem precisar nenhuma codificação adicional, uma vez que tal funcionalidade é nativa do Python 3.
Como esperado, ambos métodos funcionam perfeitamente, na vertical o retorno do laço for manual, na horizontal, o retorno do laço for via list comprehension.