Menu
Coddy logo textTech

Adicionando Condições

Parte da seção Logic & Flow do Journey de Python da Coddy — lição 52 de 78.

As list comprehensions tornam-se ainda mais poderosas quando você adiciona lógica condicional. Isso permite que você crie novas listas com base em listas existentes, filtrando e transformando elementos com base em condições especificadas.

A sintaxe para adicionar uma condição a uma compreensão de lista é:

new_list = [expression for item in iterable if condition]

Aqui está uma análise da sintaxe:

  • new_list: A nova lista que será criada.
  • expression: O valor a ser incluído em new_list. Isso pode ser uma versão modificada de item.
  • for item in iterable: Um loop que itera sobre cada elemento no iterable (ex: uma lista, tupla ou intervalo).
  • item: O elemento atual sendo processado no loop.
  • if condition: Um filtro que determina se o item atual deve ser incluído em new_list. A expression só é avaliada se a condition for True.

Aqui está um exemplo:

numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# Saída: [2, 4, 6]

Neste exemplo, a compreensão de lista cria uma nova lista chamada evens ao pegar cada elemento n da lista numbers e incluindo-o apenas se for par (ou seja, n % 2 == 0).

challenge icon

Desafio

Fácil

Crie uma função chamada filter_and_square que recebe uma lista de números numbers como argumento. A função deve usar uma list comprehension para criar uma nova lista que inclua os quadrados de apenas os números positivos da lista original. A função deve retornar a nova lista.

Folha de consulta

List comprehensions com lógica condicional permitem filtrar e transformar elementos com base em condições especificadas:

new_list = [expression for item in iterable if condition]
  • expression: O valor a ser incluído na nova lista
  • for item in iterable: Itera sobre cada elemento
  • if condition: Filtro que determina se o item deve ser incluído

Exemplo - filtrando números pares:

numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# Saída: [2, 4, 6]

Experimente você mesmo

def filter_and_square(numbers):
    # Escreva o código aqui
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Logic & Flow