Foto por Kara Eads em UnsplashCompreensões em Python:
A compreensão consiste de uma única expressão seguida de pelo menos uma for
cláusula e zero ou mais for
ou if
cláusulas.
Existem três compreensões em Python.
List Comprehensions:
List comprehensions fornecem uma forma concisa de criar listas. Aplicações comuns são para fazer novas listas onde cada elemento é o resultado de algumas operações aplicadas a cada membro de outra seqüência ou iterável ou para criar uma subseqüente daqueles elementos que satisfazem uma determinada condição. – python docs
Syntax:
A expressão pode ser qualquer expressão arbítria, expressões complexas, tuple, funções aninhadas, ou outra compreensão de lista.
Isto é equivalente a
for item in iterable:
if conditional:
expression
Tipo de retorno:
>List
>Using List Comprehension:
A compreensão de lista consiste de parênteses
contendo uma expressão seguida por uma for
cláusula, depois zero ou mais for
ou if
cláusulas. O resultado será uma nova lista resultante da avaliação da expressão no contexto da for
e if
cláusulas que a seguem.
>
Compreensão da lista vs para loop.
Por usar Compreensão de Lista, é mais conciso e legível em comparação com for loop.
Encontrar quadrado de números usando Compreensão de Lista vs para loop:
Compreensão de Lista vs filtro.
Retorna um iterador a partir daqueles elementos de iterabilidade para os quais a função retorna verdadeiro. iterável pode ser uma seqüência, um recipiente que suporta iteração, ou um iterador
List Compreensão vs filtro():
3.List Compreensão vs mapa.
map:
Retornar um iterador que aplica uma função a cada item do iterável, produzindo os resultados.
Encontrar quadrado de números usando Compreensão de Lista vs mapa():
Laçadas aninhadas em Compreensão de Lista.
A compreensão de lista pode conter um ou mais para a cláusula.
Exemplo 1: Aplainar uma lista usando Compreensão de Lista com duas cláusulas ‘para’:
5.Múltiplos se condição em Compreensão de Lista.
A Compreensão de Lista pode conter zero ou mais se cláusula.
Exemplo: Encontrar números que são divisíveis por 2 e 3.
A expressão pode ser tuple em Compreensão de lista.
Podemos mencionar a expressão como tuple em uma compreensão de lista. Ela deve ser escrita entre parênteses. Caso contrário, irá levantar Erro. O resultado será uma lista de tuples.
Exemplo 1: Criando uma lista de tuples usando Compreensão de Lista com duas cláusulas ‘para’:
Se a expressão for um tuple e se não estiver entre parênteses, ela irá aumentar SyntaxError.
Exemplo 2:Usando a função zip() em Compreensão de Lista:
A compreensão de lista pode ser usada para chamar um método em cada elemento.
Exemplo 1: Método Calling strip() em cada elemento da lista. É usado para chamar o método de strip() em cada elemento da lista.
Exemplo 2: Chamando o método upper() em cada elemento da lista.
>
A compreensão da lista pode conter expressões complexas e funções aninhadas.
Exemplo 1: No exemplo abaixo, em expressão estamos usando o método strip e int function.
Exemplo 2: No exemplo abaixo, em expressão estamos usando abs() e str() function.
Nested List Comprehension.
A expressão em uma compreensão de lista pode incluir outra compreensão de lista também.
Exemplo: A primeira compreensão de lista dada como expressão irá retornar uma lista de números pares de 0 a 10. A compreensão de lista aninhada retornará essa expressão (lista de números pares de 0 a 10) três vezes(range(3)).