Como usar a compreensão de lista em Python

Como usar a compreensão de lista em Python

O uso oportuno da compreensão de lista em Python pode facilitar as operações iterativas de lista para você. Além de ser uma linha única, é mais legível e executa com mais eficiência.





No entanto, você pode ficar nervoso se não souber como usá-lo. Pode ser ainda mais frustrante se você não souber onde aplicá-lo em seu código. Aqui, mostraremos como usar a compreensão de lista em Python com alguns exemplos da vida real.





O que é compreensão de lista em Python e como funciona?

Criar uma lista de itens com Python é fácil. No entanto, a tarefa pode se tornar um pouco tediosa quando você precisa gerar uma lista de valores ou itens de operações matemáticas ou de string. É quando usar a compreensão de listas pode ser útil.





Uma vantagem de usar a compreensão de lista é que você pode realizar várias operações em uma única lista.

o computador não reconhecerá o disco rígido externo

Em contraste, ele cria novos itens e os anexa a uma lista vazia que declara automaticamente. Então, em vez de fazer uma lista vazia manualmente e anexar a ela com um para loop, a compreensão de lista do Python permite que você faça isso automaticamente, sem se preocupar com a forma como a nova lista chega.



O termo 'compreensão de lista' vem do fato de que todas as operações estão em uma lista Python atribuída a uma variável nomeada. Como afirmamos anteriormente, ele permite que você execute operações específicas em uma única linha de código. Em seguida, anexa a saída a uma nova lista.

Por fim, você também pode usar a saída de uma compreensão de lista para outros fins. Isso porque ele empilha expressões em variáveis ​​separadas. Assim, você pode consultá-los mais tarde.





Por exemplo, você pode ser raspar um site com BeautifulSoup . Suponha que você pretenda obter o nome de todos os itens e seus preços no site.

Em seguida, você decide colocar os dados extraídos em um arquivo CSV ou Excel. A prática ideal é raspar o nome de todos os itens e seus preços e colocá-los em colunas separadas. No entanto, usar uma compreensão de lista, nesse caso, garante que você tenha os dados raspados em variáveis ​​dedicadas. Você pode então converter essas variáveis ​​em um DataFrame Python posteriormente.





Veja o exemplo abaixo:

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

Depois de obter as variáveis ​​em loop, você pode colocá-las em colunas separadas em um DataFrame usando Pandas do Python.

Como criar e usar uma compreensão de lista em Python

o para loop é um iterador essencial na compreensão de uma lista. Geralmente, uma compreensão de lista em Python assume este formato:

ComprehensionVariable = [expression for items in list]

Impressão ComprehensionVariable produz o resultado do código acima como uma lista.

No entanto, tome cuidado para não confundir a compreensão de uma lista com uma para ciclo.

Por exemplo, vamos use um loop aberto para para obter uma lista de todos os múltiplos de três entre 1 e 30:

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Para comparar os dois, vamos fazer a mesma coisa usando uma compreensão de lista:

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Você também pode usar uma compreensão de lista com declarações condicionais. O código de exemplo abaixo imprime todos os números ímpares entre 1 e 10:

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

Agora, vamos também reescrever o código acima usando um para ciclo:

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

Relacionado: Como acrescentar uma lista em Python

Uma compreensão de lista também aceita instruções if aninhadas:

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Também leva um aninhado para ciclo:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

Você também pode ter um aninhado simples para loop em uma compreensão de lista:

someNums = [i*2 for i in range(1, 3) for k in range(4)]

Você também pode manipular strings com compreensão de lista Python. Vamos dar uma olhada na compreensão do contador de palavras abaixo:

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

Uma compreensão de lista também pode aceitar uma função que executa uma operação específica. Vamos inserir uma função multiplicadora que obtenha números pares em uma compreensão de lista para ver como isso funciona:

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

Você ainda pode escrever o código acima em uma única função sem usar compreensão. Mas uma compreensão de lista é útil quando você precisa realizar várias iterações e colocar cada uma delas em variáveis ​​separadas.

Por exemplo, você pode realizar outra operação em n e tem uma variável dedicada para ele. Vamos modificar a compreensão acima para gerar números pares a partir dos ímpares:

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

Dicionário e conjunto de compreensões

Além de uma compreensão de lista, Python também oferece um dicionário e uma funcionalidade de compreensão de conjunto.

Dê uma olhada no exemplo de compreensão do dicionário abaixo para ver como funciona:

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

O código acima percorre a lista de números entre 1 e 9 e os torna as chaves. Em seguida, diz ao Python para multiplicar cada chave por dois. Finalmente, ele apresenta os resultados dessa operação como os valores correspondentes para cada chave no array resultante.

Relacionado: Como matrizes e listas funcionam em Python

Uma compreensão de conjunto é um pouco semelhante a uma compreensão de lista. Aqui está um exemplo de compreensão de conjunto:

baixe o vídeo do youtube para o rolo da câmera do iphone
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

No entanto, ao contrário da compreensão de lista, a compreensão de conjunto remove duplicatas:

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Você pode experimentar o código acima usando uma compreensão de lista para ver como eles diferem.

Você pode usar a compreensão de lista todas as vezes?

Vimos diferentes exemplos de compreensão de listas e onde você pode usá-los. No entanto, como qualquer outro método Python, o caso de uso de uma compreensão de lista depende do problema específico que você deseja resolver. Portanto, você só deve usá-lo se for ideal para o problema específico que deseja resolver.

Um dos objetivos da compreensão de lista é simplificar seu código e torná-lo mais legível. Portanto, evite complexidade ao lidar com ela. Por exemplo, uma longa compreensão do Python pode se tornar complexa de ler. Isso anula seu propósito.

Compartilhado Compartilhado Tweet O email Como usar as compreensões de lista Python (e quando não usá-las)

Aqui está tudo o que você precisa saber sobre como usar este recurso incrível do Python que aumentará sua produtividade e legibilidade de código durante a noite.

Leia a seguir
Tópicos relacionados
  • Programação
  • Pitão
Sobre o autor Idisou Omisola(94 artigos publicados)

Idowu é apaixonado por qualquer tecnologia inteligente e produtividade. Em seu tempo livre, ele brinca com programação e muda para o tabuleiro de xadrez quando está entediado, mas também adora quebrar a rotina de vez em quando. Sua paixão por mostrar às pessoas o caminho da tecnologia moderna o motiva a escrever mais.

Mais de Idowu Omisola

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever