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

Quando será a prova do concurso TSE Unificado?

Estudar para a prova, montar cronograma, organizar a rotinas de estudos... a vida do concurseiro…

5 minutos atrás

Concurso PM SP: SAIU edital para Soldado! 2.700 vagas

Concurso PM SP para Soldado oferece salário de R$ 4,8 mil. Provas em fevereiro! Está…

15 minutos atrás

Concurso FOSP tem comissão alterada; banca próxima!

Foi publicada, no Diário Oficial de São Paulo, a alteração dos membros da comissão que…

16 minutos atrás

LC 24/75 para SEFAZ-RJ

Olá, pessoal. Tudo certo? No artigo de hoje veremos o resumo da LC 24/75 para…

30 minutos atrás

Concurso TRT 24 (MS) inscrições abertas; inicial de até R$ 16 mil!

O Tribunal Regional do Trabalho da 24ª região oferece 14 vagas imediatas mais formação de cadastro de reserva distribuídas…

35 minutos atrás

Edital TRT MS: inscrições abertas! Até R$ 16 mil

O edital TRT MS (Tribunal Regional do Trabalho da 24ª região) oferece 14 vagas imediatas mais…

36 minutos atrás