Engenharias e TI

List Comprehensions em Python para o CNU (TI)

Olá pessoal, tudo bem? Este artigo apresenta uma das características mais poderosas e elegantes do Python, que é a compreensão de listas, também conhecida como “list comprehensions“. Este é um assunto muito importante no estudo da linguagem Python, sendo possível que a Cesgranrio cobre isso na prova do CNU.

Sendo assim, exploraremos em detalhes o que são as list comprehensions, como funcionam e como podem ser aplicadas em diferentes cenários.

Estruturamos este artigo da seguinte maneira:

  • Introdução
  • O que são List Comprehensions?
  • Funcionamento das List Comprehensions
  • Benefícios das List Comprehensions
  • Usos avançados
  • Exemplos
  • Conclusão

O que são List Comprehensions?

List comprehensions são uma forma compacta e poderosa de criar listas em Python. Elas permitem a criação de listas de forma mais concisa, substituindo o uso de loops for tradicionais. A sintaxe básica de uma list comprehension é bastante simples:

new_list = [expression for item in iterable]

Essa estrutura consiste em três partes principais:

  • expression: A expressão que define o que cada elemento da nova lista será.
  • for: Um loop for que itera sobre cada item em um iterável.
  • item in iterable: O iterável sobre o qual o loop for é executado.

Funcionamento das List Comprehensions

Vamos analisar um exemplo simples para entender melhor como as list comprehensions funcionam. Suponha que queremos criar uma lista que contenha os quadrados dos números de 0 a 9. Podemos fazer isso facilmente usando uma list comprehension:

Neste exemplo, x**2 é a expressão que define o que cada elemento da lista será (o quadrado de x), for x in range(10) é o loop for que itera sobre cada número de 0 a 9, e range(10) é o iterável sobre o qual o loop é executado. O resultado será a lista [0, 1, 4, 9, 16, 25, 36, 49, 64, 81].

Benefícios das List Comprehensions

As list comprehensions oferecem vários benefícios em comparação com o uso de loops for tradicionais:

  • Legibilidade: O código usando list comprehensions é geralmente mais conciso e fácil de entender, especialmente para operações simples.
  • Eficiência: As list comprehensions são mais eficientes em termos de desempenho do que os loops for tradicionais.
  • Funcionalidade em uma linha: Muitas vezes, é possível realizar tarefas que normalmente requerem várias linhas de código em apenas uma linha usando list comprehensions.

Usos Avançados de List Comprehensions

Além dos casos simples que vimos até agora, as list comprehensions podem ser utilizadas de forma mais avançada para lidar com situações mais complexas. Por exemplo, é possível adicionar condições para filtrar os itens do iterável antes de adicioná-los à lista resultante. 

Considere o seguinte exemplo, onde queremos criar uma lista apenas com os números pares de 0 a 9:

Neste caso, a condição if x % 2 == 0 é adicionada ao final da list comprehension para filtrar apenas os números pares. O resultado será a lista [0, 2, 4, 6, 8].

Além disso, podemos usar a estrutura if else dentro de uma list comprehension para modificar a expressão com base em uma condição. Por exemplo, podemos criar uma lista onde os números pares são elevados ao quadrado e os ímpares são mantidos como estão:

Neste caso, se x for par, ele será elevado ao quadrado, caso contrário, será mantido o mesmo. O resultado será a lista [0, 1, 4, 3, 16, 5, 36, 7, 64, 9].

Exemplos de uso de list comprehension

Exemplo 1: Convertendo Palavras para Maiúsculas

Suponha que temos uma lista de palavras e queremos criar uma nova lista onde todas as palavras estejam em maiúsculas:

O resultado será a lista [‘HELLO’, ‘WORLD’, ‘PYTHON’, ‘LIST’, ‘COMPREHENSIONS’].

Exemplo 2: Filtrando Números Primos

Vamos criar uma lista dos números primos menores que 50:

Neste exemplo, usamos uma list comprehension com uma condição para verificar se um número é primo ou não. 

O resultado será a lista [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47].

Exemplo 3: Criando uma Lista de Listas

Às vezes, queremos criar uma lista de listas, onde cada sublista contenha números sequenciais. Por exemplo, uma lista de listas onde cada sublista contém os primeiros n números:

Neste exemplo, criamos uma lista de listas onde cada sublista contém os números de 1 a 3. 

O resultado será [ [1, 2, 3], [1, 2, 3], [1, 2, 3] ].

Exemplo 4: Manipulação de Strings com list comprehensions

Suponha que temos uma lista de strings e queremos criar uma nova lista onde cada string tenha o seu comprimento:

O resultado será a lista [6, 2, 7], que representa os comprimentos das strings na lista original.

Exemplo 5: Substituindo Valores em uma Lista com list comprehensions

Podemos criar uma nova lista onde substituímos certos valores por outros:

Neste exemplo, substituímos os números pares por ‘even’ e os números ímpares por ‘odd’. 

O resultado será [‘odd’, ‘even’, ‘odd’, ‘even’, ‘odd’].

Exemplo 6: Dividindo Idades em Maiores e Menores de 18 Anos

Suponha que temos uma lista de idades e queremos categorizá-las em duas listas separadas: uma contendo as idades maiores ou iguais a 18 anos e outra contendo as idades menores de 18 anos:

Neste exemplo, usamos uma list comprehension com uma estrutura if else para categorizar cada idade como “maior” se for maior ou igual a 18 anos, ou “menor” se for menor que 18 anos. 

O resultado será a lista [‘maior’, ‘menor’, ‘maior’, ‘menor’, ‘maior’, ‘menor’, ‘maior’, ‘maior’], que representa as categorias de idade para cada idade na lista original.

Conclusão

As list comprehensions são uma ferramenta poderosa em Python para criar listas de forma concisa e eficiente. Elas são amplamente utilizadas em código Python por sua capacidade de simplificar tarefas comuns que envolvem a geração e manipulação de listas. Ao dominar as list comprehensions, você poderá escrever código mais limpo, legível e eficiente em Python. 

Com este artigo sobre list comprehensions, espero ter fornecido uma compreensão clara de como elas funcionam e como podem ser aplicadas em diferentes cenários. 

Quer saber quais serão os próximos concursos?

Confira nossos artigos!

Concursos abertos

Concursos 2024

Antoniel da Silva Rego

Posts recentes

Concurso Bombeiros RS: 400 vagas autorizadas para Soldado

Atenção, corujas: o governo do Rio Grande do Sul autorizou a realização de um novo…

9 minutos atrás

Concurso Brigada Militar RS: 1.350 vagas autorizadas!

Comissão do novo edital já está formada! O governador Eduardo Leite autorizou a realização de…

31 minutos atrás

Concurso PC RS: edital autorizado; 750 vagas!

Foi oficialmente autorizada a realização do próximo concurso PC RS (Polícia Civil do Rio Grande…

40 minutos atrás

Concursos Segurança RS: mais de 2,7 mil vagas autorizadas!

Atenção, corujas: o governo do Rio Grande do Sul autorizou mais de 2.700 mil vagas…

49 minutos atrás

Concursos Abertos de Prefeituras: mais de 50 editais!

Estamos em ano de eleições municipais, o que contribui ainda mais para a publicação de…

3 horas atrás

Concurso Itaguaru: saiu edital; 152 vagas e até R$ 4,3 mil!

Está na praça o mais novo edital de concurso público da Prefeitura de Itaguaru, município…

3 horas atrás