Introdução ao Python de Compreensões de Lista

As compreensões fornecem uma maneira curta e fácil de construir novas seqüências usando sequências já definidas no Python. Essas seqüências podem ser listas, conjuntos, dicionários etc. A compreensão da lista é um dos recursos valiosos do Python. Em poucas palavras, Compreensões de lista oferece uma maneira de criar novas listas com base nas listas existentes. Em outras palavras, Compreensões de lista é uma maneira simples de criar uma lista com base em algumas iterações. Aqui, iterável é qualquer coisa que possa ser usada para fazer um loop. As Compreensões de Lista possibilitam o uso de uma sintaxe alternativa para criar listas e quaisquer outros tipos de dados seqüenciais em python. Vamos dar uma olhada em como isso é útil mais tarde. Existem 3 componentes da Compreensão da lista, são eles:

  • Expressão de saída: essa é opcional e pode ser ignorada.
  • Iterável.
  • Uma variável que representa membros do iterável, é freqüentemente chamada de Variável Iteradora.

Sintaxe e exemplos:

Em python, podemos criar Compreensões de Lista usando a seguinte sintaxe:

list_variable = (x for x in iterable)

Como você pode ver em Compreensões de lista, uma lista é atribuída a uma variável. Vamos dar uma olhada em um exemplo. Primeiro, podemos considerar um método para encontrar o quadrado de um número usando um loop:

Código:

numbers = (2, 5, 3, 7) square = () for n in numbers:
square.append(n**2)
print(square)

Resultado:

Agora, vamos considerar fazer o mesmo, mas usando List Comprehensions em vez de um loop:

Código:

numbers = (2, 5, 3, 7) square = (n**2 for n in numbers) print(square)

Resultado:

Aqui, você pode ver que colchetes “()” são usados ​​para indicar que a saída da expressão dentro deles é uma lista.

Lista de compreensões e funções Lambda

Você deve ter em mente que a compreensão de lista não é a única maneira de criar listas, o Python possui muitas funções embutidas e a função lambda que podem ser usadas, como:

Código:

letters = list(map(lambda x: x, 'human'))
print(letters)

Resultado:

Embora isso funcione em muitos casos, as compreensões da lista são melhores em legibilidade e mais fáceis de entender por alguém que não é o programador do código.

Adicionando condicionais em compreensões de lista

Você é livre para usar qualquer condição condicional necessária dentro de uma compreensão da lista para modificar a lista existente. Vamos dar uma olhada em um exemplo que usa condicionais:

Código:

numbers_list = ( x for x in range(20) if x % 2 == 0) print(numbers_list)

Resultado:

Aqui está outro exemplo:

Código:

numbers_list = (x for x in range(100) if x % 2 == 0 if x % 5 == 0) print(numbers_list)

Resultado:

Usando loops aninhados em compreensões de lista

Quando necessário, podemos usar loops aninhados em compreensões de lista, vamos dar uma olhada em como podemos usar loops aninhados dessa maneira, localizando a transposição de uma matriz:

Código:

transposedmatrix = () matrix = ((1, 2, 3, 4), (4, 5, 6, 8)) for i in range(len(matrix (0))):
transposedmatrix_row = () for row in matrix:
transposedmatrix_row.append(row(i))
transposedmatrix.append(transposedmatrix_row)
print(transposedmatrix)

Resultado:

Exemplos de compreensões de lista Python

Abaixo estão os exemplos de List Comprehensions Python:

Exemplo # 1 - Removendo vogais de uma determinada sentença

Código:

def eg_for(sentence):
vowels = 'aeiou'
filter_list = () for l in sentence:
if l not in vowels:
filter_list.append(l)
return ''.join(filter_list)
def eg_lc(sentence):
vowels = 'aeiou'
return ''.join(( X for X in sentence if X not in vowels))
Now, let's define the matrix, run the program and then check-out the results:
sentence = "hello from the other side"
print ("loop result: " + eg_for(sentence))
print ("LC result: " + eg_lc(sentence))

Resultado:

Exemplo # 2 - Mapeando nomes de países com suas capitais

Código:

country = ( 'India', 'Italy', 'Japan' ) capital = ( 'Delhi', 'Rome', 'Tokyo' ) output_dict = ()
# Using loop for constructing dictionary
for (key, value) in zip(country, capital):
output_dict(key) = value
print("Output Dictionary using for loop:", output_dict)

Resultado:

Vantagens do Python para Compreensões de Lista

Pode-se pensar que se os Loops podem ser usados ​​para fazer quase tudo o que a compreensão da lista faz, por que usá-los em primeiro lugar? Bem, a resposta está na velocidade, no tempo que leva para concluir a tarefa e na quantidade de memória necessária. Quando uma compreensão de lista é feita, já estamos reduzindo três linhas de código em uma e, quando isso é feito, o código é muito mais rápido do que quando enfrentamos uma compreensão de lista, o python aloca a memória para a lista primeiro e depois adiciona elementos nela. Além disso, é sem dúvida uma maneira mais elegante e sofisticada de criar listas baseadas em listas pré-existentes.

Conclusão

Agora que tivemos alguma experiência com a compreensão de listas, é fácil entender como isso nos permite transformar uma lista em uma nova lista. Eles possuem uma sintaxe simples que limita a quantidade de trabalho necessária para criar uma lista. Considerando que a sintaxe e a estrutura das compreensões de lista é basicamente como uma notação de construtor de conjuntos, elas se tornam uma segunda natureza para os programadores rapidamente e garantem que, uma vez que o código seja entregue a outra pessoa para manter e expandir, será fácil entender e trabalhar com.

Artigo recomendado

Este é um guia para o List Comprehensions Python. Aqui discutimos as compreensões da lista e as funções lambda, juntamente com a Implementação e Saída de Código. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Destruidor em Python com vantagens
  2. Loop Do While em Python com fluxograma
  3. Matriz de seqüência de caracteres em Python com métodos
  4. O que são as camadas do AWS Lambda?
  5. Tipos de dados PL / SQL
  6. Matriz de seqüência de caracteres em JavaScript
  7. Diferentes tipos de dados SQL com exemplos
  8. Guia Completo para Array of String