10 Exemplos de compreensão da lista mestre Python

Conteúdo

Esta postagem foi tornada pública como parte do Data Science Blogathon

Introdução

Neste post, vamos estudar as listas pela compreensão do Python e como usá-las. Os tópicos que discutiremos nesta postagem são os seguintes:

  • Qual é a diferença entre List Comprehension e For loop em Python?
  • Sintaxe de compreensões de lista em Python
  • Diferença entre funções Lambda e compreensões de lista
  • Condicionais dentro da compreensão da lista
  • Loops aninhados na lista de compreensões em Python
  • Pontos principais sobre a compreensão de listas
  • Mais exemplos de compreensão de lista

One Not Simply Meme - Imgflip |  Lista de compreensão do Python

Fonte da imagem: Imagens do google

Qual é a diferença entre compreensão de lista e loop for em Python?

Suponha que desejamos separar as letras da palavra “análise” e adicione as letras como itens de uma lista. A principal coisa que vem à mente é usar o loop for.

Exemplo 1: usando o loop For para iterar por meio de uma string

cartas_separadas = []
para carta em 'análises':
separados_letters.append(carta)
imprimir(cartas_separadas)

Produção:

[ 'uma', 'n', 'uma', 'eu', 'e', 't', 'eu', 'c', 's' ]

Explicação do código:

Neste exemplo, vamos dividir a string com base nos caracteres e armazenar todos esses caracteres em uma nova lista.

Apesar disto, Python tem uma maneira melhor de resolver este problema usando Compreensão de lista. A compreensão de listas é uma maneira sublime de estabelecer e fazer listas com base em listas existentes..

Vamos ver como o programa acima pode ser escrito usando listas de compreensão.

Exemplo 2: usando compreensão de lista para iterar por meio de uma string

cartas_separadas = [ carta por carta em 'análises' ]
imprimir( cartas_separadas)

Produção:

[ 'uma', 'n', 'uma', 'eu', 'e', 't', 'eu', 'c', 's' ]

Explicação do código:

No exemplo acima, uma nova lista é atribuída às variáveis ​​letter_separated, e a lista contém as coisas da string iterável ‘análise’. Para terminar, para receber a saída, nós chamamos o Imprimir() função python.

Sintaxe de compreensão de lista

[expressão para o item na lista]

Agora, podemos identificar onde as listas são usadas, entendendo.

Se ele percebeu, “análise” poderia ser uma corda, não uma lista. Muitas vezes são as listas fáceis de entender. Você pode identificar quando recebe uma string ou tupla e trabalhar nisso como uma lista.

Você pode testar isso usando loops. Apesar disto, nem todos os loops podem ser reescritos como uma lista de compreensão. Mas, ao mesmo tempo, medir que aprenda y se sienta cómodo con las listas por comprensión, você vai acabar substituindo mais e mais loops com esta sintaxe extravagante.

Lista de entendimentos vs funções Lambda

Para trabalhar ou realizar operações com listas, listas de compreensão não são a única maneira, mas várias ferramentas integradas e funções lambda podem criar e modificar listas em menos linhas de código.

Exemplo 3: usando funções Lambda dentro de List

letras = lista(mapa(lambda e: e, 'analítica'))
imprimir(cartas)

Produção:

[ 'uma', 'n', 'uma', 'eu', 'e', 't', 'eu', 'c', 's' ]

Explicação do código:

Neste código, vamos separar os caracteres da string usando funções lambda.

Apesar disto, em geral, listas de compreensão são mais legíveis por humanos do que funções lambda. É mais fácil entender o que o programador estava tentando alcançar ao usar listas de compreensão.

Condicionais em listas de compreensão

Listas abrangentes podem usar declarações condicionais para alterar listas existentes (ou outras tuplas). vamos criar uma lista que usa operadores matemáticos, inteiros e intervalo ().

Exemplo 4: Use se com compreensão de lista

even_list = [ i para i no alcance(10) se eu % 2 == 0]
imprimir(even_list)

Produção:

[0, 2, 4, 6, 8]

Explicação do código:

A lista, even_list, será completado com coisas na faixa de 0 uma 9 se o valor do elemento for divisível por 2.

Exemplo 5: aninhado sim com compreensão de lista

filter_list = [ x para x no intervalo(50) se x % 2 == 0 se x % 5 == 0]
imprimir(filter_list)

Produção:

[0, 10, 20, 30, 40]

Explicação do código:

Aqui, verificações de compreensão de lista:

X é divisível por 2 ou não?

X é divisível por 5 ou não?

Se x satisfaz ambas as condições, x é adicionado a filter_list.

Exemplo 6: E se … mais com compreensão de lista

lista = ["até" if y% 2 == 0 else "ímpar" para y no alcance(5)]
imprimir(Lista)

Produção:

['até', 'ímpar', 'até', 'ímpar', 'até']

Explicação do código:

Aqui, compreender a lista irá verificar os cinco números do 0 al 4. Se y é divisível por 2, par é adicionado à lista de obj. Sim, não é assim, ímpar é adicionado.

Loops aninhados na compreensão da lista

Suponha que gostaríamos de calcular a transposição de uma matriz que precisa de um loop for aninhado. Vamos ver como isso é feito usando o loop normal for primeiro.

Exemplo 7: encontrar a transposição da matriz usando loops aninhados

transposed_matrix = []
matriz = [[1, 2, 3, 4], [4, 5, 6, 8]]
para eu no alcance(len(matriz[0])):
        transposed_row = []
        para linha na matriz:
              transposed_row.append(fileira[eu])
        transposed_matrix.append(transposed_row)
imprimir(transposed_matrix)

Produção:

[[1, 4], [2, 5], [3, 6], [4, 8]]

Explicação do código:

O código acima usa dois loops for para encontrar a transposição da matriz.

Ao mesmo tempo, podemos fazer iterações aninhadas em uma lista de compreensão. Nesta secção, vamos encontrar a transposição de uma matriz usando um loop aninhado dentro de uma lista de compreensão.

Exemplo 8: Encontrando a transposição de uma matriz por meio da compreensão de lista

matriz = [[1, 2], [3,4], [5,6], [7,8]]
transpose_matrix = [[fileira[eu] para linha na matriz] para eu no alcance(2)]
imprimir (transpose_matrix)

Produção:

[[1, 3, 5, 7], [2, 4, 6, 8]]

Explicação do código:

No programa acima, tenemos una matriz variável o que tem 4 linhas e algumas colunas. Precisamos encontrar a transposição da matriz. Para isso, nós usamos compreensão de lista.

Pontos-chave na compreensão de listas

Os pontos-chave para prestar atenção ao trabalhar com compreensão de lista são os seguintes:

  • A compreensão da lista é um sublime camino para estabelecer e construir listas com a ajuda de listas existentes.
  • Comparado a loops e funções normais, compreensão de lista Geralmente é mais compacto e rápido para criar listas.
  • Apesar disto, devemos sempre Evite escrever listas muito longas e abrangentes em uma linha. para confirmar esse código é fácil de usar.
  • Lembrar, cada lista de compreensão isto é reescrito em loop, mas todos os loops for não podem ser reescritos Dentro de mas o menos compreensão de lista.

Mais exemplos de compreensão de lista

Vejamos mais alguns exemplos relacionados à compreensão de lista para que você tenha uma melhor compreensão das compreensões de lista em Python.

Exemplo 9: Encontre os itens em uma lista em que os itens terminam com a letra 'b’ e o comprimento desse elemento é maior que 2

nomes = ['CH','Dh','Eh','cb','Tb','Td','Chb','Tdb']
final_names = [nome para nome em nomes se nome.inferior().termina com('b') e len(nome) > 2]
final_names

Produção:

['Chb', 'Tdb']

Explicação do código:

No código acima, usamos a compreensão de lista com algumas condições associadas. As funções envolvidas nas condições são as seguintes:

  • Nome. lower.endswith (‘B’): Esta função filtra todas as strings na lista que terminam com as letras 'b’ o ‘B’.
  • len (Nome): Esta função encontra o comprimento de todos os itens em uma lista especificada.

Exemplo 10: inverta cada string em uma tupla

# Reverter cada elemento em uma tupla especificada
Lista = [fragmento[::-1] para corda em ('Olá', 'Analytics', 'Vidhya')]
# Mostra a lista
imprimir(Lista)

Produção:

[ 'olleH', 'scitylanA', 'ayhdiV' ]

Explicação do código:

No código acima, usamos o conceito de corte em uma corrente, por isso, ao usar str[::-1] Função, podemos inverter os itens de uma string, e aplicamos esta função a cada elemento da tupla usando compreensão de lista.

Isso encerra nossa discussão!!

Notas finais

Espero que tenha gostado do post.

Se você quiser se conectar comigo, Não duvide em manter contato comigo. por O email.

Suas sugestões e dúvidas são bem-vindas aqui na seção de comentários. Obrigado por ler meu post!!

A mídia mostrada nesta postagem não é propriedade da DataPeaker e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.