Compreensão da Lista do Python

Na lição de hoje, discutiremos a compreensão de listas Python com exemplos para atingir os objetivos de aprendizado.

Vantagens de compreensão de listas Python

  1. Comparado aos loops, é mais eficiente em termos de espaço e tempo.
  2. Simplifique o processo de codificação.
  3. Formula declarações iterativas.


Compreensão de Listas Py

Quando se trata de compreensão de listas do Python , a compreensão de lista oferece uma sintaxe mais simples para criar uma nova lista com base em valores existentes.

Exemplo:

O objetivo é criar uma nova lista contendo apenas os países cujos nomes começam com a letra “U”.

Se você não tem compreensão de lista, você terá que escrever uma declaração for com um teste condicional nela:

Example: 

1
2
3
4
5
6
7
8
country_list = [ "United States of America", "United Kingdom", "Finland", "Brazil", "Germany", "Spain", "Maldives", "Croatia", "Denmark", "Italy"]
country_newlist = []
for i in country_list:
if "U" in i:
country_newlist.append(i)
print(country_newlist)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A compreensão de listas do Python torna tudo isso possível com apenas uma linha de código:

Example: 

1
2
3
4
5
country_list = [ "United States of America", "United Kingdom", "Finland", "Brazil", "Germany", "Spain", "Maldives", "Croatia", "Denmark", "Italy"]
country_newlist = [i for i in country_list if "U" in i]
print(country_newlist)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplos de compreensão de listas Python


Sintaxe

newlist = [In an iterable if condition, the expression for the item == True]

Quando se trata de compreensão de listas Python , o valor de retorno é uma nova lista, deixando a lista antiga inalterada.


Iterável

Você pode iterar sobre qualquer objeto iterável, como uma lista, tupla, conjunto, etc.

Example:  The range() function creates an iterable as follows:

1
2
3
4
current_list = [i for i in range(10)]
print(current_list)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Este exemplo é igual ao anterior, mas com uma condição:

Example:  Numbers less than 7 should be accepted:

1
2
3
4
current_list = [i for i in range(10) if i < 8]
print(current_list)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Doença

Essa condição é semelhante a um filtro, que aceita apenas itens verdadeiros.

Aceite apenas itens que não sejam “Dinamarca”:

Example: 

1
2
3
4
5
6
7
8
9
10
11
country_list = [ "United States of America", "United Kingdom", "Finland", "Brazil", "Germany", "Spain", "Maldives", "Croatia", "Denmark", "Italy"]
country_newlist = [i for i in country_list if i != "Denmark"]
print(country_newlist)
#you can do the above task by applying "!=" operator
country_newlist = [i for i in country_list if "Denmark" not in i]
print(country_newlist)
#you can also do the above task by applying "not" and "in" keyword.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A situação se i != “Dinamarca” Retorna True para todos os elementos, exceto

Como resultado, a nova lista contém todos os países, exceto “Dinamarca”.

O requisito não é essencial e pode ser excluído:

Example:  In the absence of an if statement:

1
2
3
4
5
country_list = [ "United States of America", "United Kingdom", "Finland", "Brazil", "Germany", "Spain", "Maldives", "Croatia", "Denmark", "Italy"]
country_newlist = [i for i in country_list]
print(country_newlist)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

O que você precisa saber ?

  1. Com base nas listas existentes, a compreensão de listas do Python define e cria novas listas.
  2. O processo de criação de uma lista usando compreensão de lista geralmente é mais compacto e rápido do que usar funções e loops para criar a lista.
  3. Se quisermos manter nosso código amigável, devemos evitar escrever listas muito longas de compreensões em uma linha.
  4. O loop for não pode ser reescrito na forma de uma compreensão de lista, mas toda compreensão de lista pode ser reescrita na forma de um loop for.
  5. Assim como os loops for aninhados, as compreensões de lista aninhadas são apenas compreensões de lista aninhadas umas nas outras.

Expressão

Na compreensão de listas do Python , a expressão é o item atual na iteração, mas também é o resultado, que pode ser modificado antes de se tornar um item de lista na newlist:

Na nova lista, verifique se todos os valores estão em letras maiúsculas:

Example: 

1
2
3
4
5
6
7
country_list = [ "United States of America", "United Kingdom", "Finland", "Brazil", "Germany", "Spain", "Maldives", "Croatia", "Denmark", "Italy"]
current_list = [i.upper() for i in country_list]
print(current_list)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

O resultado pode ser definido como você quiser:

Example:  Make all values in the updated list ‘greetings’:

1
2
3
4
5
6
7
country_list = [ "United States of America", "United Kingdom", "Finland", "Brazil", "Germany", "Spain", "Maldives", "Croatia", "Denmark", "Italy"]
current_list = ["greetings" for i in country_list]
print(current_list)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Uma condição também pode ser adicionada à expressão, não como um filtro, mas como uma forma de manipular o resultado:

Example:  Rather than “Maldives”, return “Ireland”:

1
2
3
4
5
6
7
country_list = [ "United States of America", "United Kingdom", "Finland", "Brazil", "Germany", "Spain", "Maldives", "Croatia", "Denmark", "Italy"]
current_list = [i if i != "Maldives" else "Ireland" for i in country_list]
print(current_list)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A afirmação na ilustração acima indica:

“O item deve ser devolvido se não for Maldivas, se for Maldivas deve ser devolvido à Irlanda”


Importância da compreensão da lista do Python

Aqui estão algumas razões pelas quais a compreensão da lista é importante em Python:

  1. As compreensões de lista fornecem uma sintaxe compacta para criar listas em uma única linha de código. Isso leva a um código mais conciso e legível, especialmente quando comparado à escrita de loops for tradicionais ou ao uso de funções lambda. As compreensões de lista permitem que você expresse suas intenções diretamente, tornando o código mais compreensível e fácil de manter.
  2. As compreensões de lista são otimizadas pelo interpretador Python e geralmente oferecem melhor desempenho do que os loops for equivalentes. Eles podem ser mais rápidos e eficientes porque utilizam operações baseadas em C altamente otimizadas nos bastidores. Isso torna as compreensões de lista uma excelente opção quando você precisa processar grandes conjuntos de dados ou realizar transformações complexas em listas.
  3.  As compreensões de lista permitem transformar cada elemento de uma lista existente e criar uma nova lista com base nos valores transformados. Isso é particularmente útil quando você precisa aplicar uma operação ou função consistente a cada item da lista. As compreensões de lista permitem que você expresse a transformação de forma sucinta, melhorando a legibilidade do código.
  4. As compreensões de lista também fornecem uma maneira conveniente de filtrar elementos de uma lista existente com base em condições específicas. Você pode incluir uma ifinstrução na compreensão da lista para incluir ou excluir seletivamente elementos da lista resultante. Isso facilita a criação de uma nova lista que contém apenas os elementos desejados que atendem a critérios específicos.
  5. As compreensões de lista abrangem os princípios da programação declarativa, concentrando-se em “ o que ” precisa ser alcançado em vez de “ como ” deve ser feito. Eles permitem que você expresse sua intenção de forma clara e concisa. Com as compreensões de lista, você pode escrever um código que se assemelhe à notação matemática, melhorando a expressividade do código.
Fique por dentro dos próximos eventos e promoções assinando nossa Newsletter.

 

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone