freeCodeCamp/guide/portuguese/python/lists/list-comprehension/index.md

4.2 KiB

title localeTitle
List Comprehension Compreensão de lista

Compreensão de lista

A compreensão de lista é uma forma de percorrer uma lista para produzir uma nova lista com base em algumas condições. Pode ser confuso no começo, mas uma vez que você esteja acostumado com a sintaxe, ela é muito poderosa e rápida.

O primeiro passo para aprender a usar a compreensão de listas é olhar para a maneira tradicional de fazer um loop através de uma lista. A seguir, um exemplo simples que retorna uma nova lista de números pares.

# Example list for demonstration 
 some_list = [1, 2, 5, 7, 8, 10] 
 
 # Empty list that will be populate with a loop 
 even_list = [] 
 
 for number in some_list: 
  if number % 2 == 0: 
    even_list.append(number) 
 
 # even_list now equals [2, 8, 10] 

Primeiro, uma lista é criada com alguns números. Em seguida, você cria uma lista vazia que armazenará seus resultados do loop. No loop, você verifica se cada número é divisível por 2 e, se for o caso, você adiciona o mesmo a lista de par. Isso levou 5 linhas de código, não incluindo comentários e espaço em branco, o que não é muito neste exemplo.

Agora, para o exemplo de compreensão de lista.

# Example list for demonstration 
 some_list = [1, 2, 5, 7, 8, 10] 
 
 # List Comprehension 
 even_list = [number for number in some_list if number % 2 == 0] 
 
 # even_list now equals [2, 8, 10] 

Outro exemplo, com os mesmos dois passos: A seguir, será criada uma lista de números que correspondem aos números em my_starting_list multiplicados por 7.

my_starting_list = [1, 2, 3, 4, 5, 6, 7, 8] 
 my_new_list = [] 
 
 for item in my_starting_list: 
 my_new_list.append(item * 7) 

Quando este código é executado, o valor final de my_new_list é: [7, 14, 21, 28, 35, 42, 49, 56]

Um desenvolvedor usando a compreensão da lista pode obter o mesmo resultado usando a seguinte compreensão de lista, o que resulta na mesma my_new_list .

my_starting_list = [1, 2, 3, 4, 5, 6, 7, 8] 
 
 my_new_list = [item * 7 for item in my_starting_list] 

Uma fórmula simples para escrever de uma forma de compreensão de lista é:

my_list = [{operation with input n} for n in {python iterable}]

Substitua {operation with input n} por no entanto, você deseja alterar o item retornado do iterável. O exemplo acima usa n * 7 mas a operação pode ser tão simples ou tão complexa quanto necessário.

Substitua {python iterable} por qualquer iterável. Tipos de seqüência serão mais comuns. Uma lista foi usada no exemplo acima, mas tuplas e intervalos também são comuns.

A compreensão da lista adiciona um elemento de uma lista existente a uma nova lista se alguma condição for atendida. É mais puro, mas também é muito mais rápido na maioria dos casos. Em alguns casos, a compreensão da lista pode dificultar a legibilidade, portanto, o desenvolvedor deve pesar suas opções ao escolher usar a compreensão da lista.

Exemplos de compreensão de lista com condicionais

O fluxo de controle em compreensões de lista pode ser controlado usando condicionais. Por exemplo:

only_even_list = [i for i in range(13) if i%2==0] 

Isso é equivalente ao seguinte loop:

only_even_list = list() 
 for i in range(13): 
  if i%2 == 0: 
    only_even_list.append(i) 

A compreensão da lista também pode conter condições aninhadas. Considere o seguinte loop:

divisible = list() 
 for i in range(50): 
  if i%2 == 0: 
    if i%3 == 0: 
      divisible.append(i) 

Usando a compreensão da lista, isso pode ser escrito como:

divisible = [i for i in range(50) if i%2==0 if i%3==0] 

A instrução If-Else também pode ser usada junto com a compreensão da lista.

list_1 = [i if i%2==0 else i*-1 for i in range(10)] 

Mais Informações:

Estruturas de Dados Python - Listas

Python For Loops

Listas de Python

Python Para Iniciantes - Compre Compreensão