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.
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 pra
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. Portanto, 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:
Produtos = [i.text para i em bs.find_all ('tags de nome')]
Preço = [i.text para i em bs.find_all ('etiquetas de preço')]
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 pra loop é um iterador essencial na compreensão de uma lista. Geralmente, uma compreensão de lista em Python assume este formato:
ComprehensionVariable = [expressão para itens na lista]
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 pra 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:
minhaLista = []
para i no intervalo (1, 11):
myList.append (i * 3)
imprimir (minhaLista)
Resultado: [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:
múltiplosOf3 = [i * 3 para i no intervalo (1, 11)]
imprimir (multiplesOf3)
Resultado = [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 para i no intervalo (1, 11) se não i% 2 == 2]
imprimir (números ímpares)
Resultado = [1, 3, 5, 7, 9]
Agora, vamos também reescrever o código acima usando um pra ciclo:
minhaLista = []
para i no intervalo (1, 11):
se não i% 2 == 0:
myList.append (i)
imprimir (minhaLista)
Resultado: [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 para i no intervalo (1, 11) se não i% 2 == 0 se i <4]
imprimir (números ímpares)
Resultado: [1, 3]
Também leva um aninhado pra ciclo:
someNums = [[i * 2 para i no intervalo (1, 3)] para _ no intervalo (4)]
imprimir (someNums)
Você também pode ter um aninhado simples pra loop em uma compreensão de lista:
someNums = [i * 2 para i no intervalo (1, 3) para k no intervalo (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 = ["Este é um tutorial de compreensão de lista Python"]
wordCounter = [i.count ('') + 1 para i na palavra]
imprimir (wordCounter)
Produto: 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:
Números = [4, 7, 8, 15, 17, 10]
multiplicador def (n):
múltiplo = n * 2
retornar múltiplos
multipleEven = [multiplicador (i) para i em números se i% 2 == 0]
imprimir (multipleEven)
Resultado: [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]
imprimir (multipleEvenFromOdds)
Resultado: [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:
correspondente = {i: i * 2 para i no intervalo (10) se não for i% 2 == 0}
imprimir (corr)
Resultado: {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:
números = {i ** (2) para i no intervalo (10) se i% 4 == 0}
imprimir (números)
Resultado: {0, 16, 64}
No entanto, ao contrário da compreensão de lista, a compreensão de conjunto remove duplicatas:
nums = {i para i no intervalo (20) se i% 2 == 1 para k no intervalo (10) se k% 2 == 1}
imprimir (nums)
Resultado: {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 listas 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 vai contra o seu propósito.
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.
- Programação
- Pitão
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.
Assine a nossa newsletter
Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!
Mais um passo…!
Confirme o seu endereço de e-mail no e-mail que acabamos de enviar.