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 emnew_list. Isso pode ser uma versão modificada deitem.
for item in iterable: Um loop que itera sobre cada elemento noiterable(ex: uma lista, tupla ou intervalo).
item: O elemento atual sendo processado no loop.
if condition: Um filtro que determina se oitematual deve ser incluído emnew_list. Aexpressionsó é avaliada se aconditionforTrue.
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).
Desafio
FácilCrie 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 listafor item in iterable: Itera sobre cada elementoif 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 aquiEsta 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
1Exploração de Variáveis
ConstantesAtribuição de Múltiplas VariáveisTroca de VariáveisVariáveis de Espaço ReservadoArredondar NúmerosCasting de Listas4Aplicativo de Agenda de Contatos
Exibir MenuAdicionar Contato7Conjuntos Parte 2
Operações Matemáticas Parte 1Operações Matemáticas Parte 2Revisão - Caça ao TesouroSubconjuntos e SuperconjuntosIterando sobre ConjuntosRevisão - Rastreador de Torneio10List Comprehensions Básicas
A SintaxeCriando Listas SimplesAdicionando CondiçõesUsando Agregação de DadosRecapitulação - House Of ListsRecapitulação - Elements Of Freedom13Sistema de Gerenciamento de Inventário
Visão Geral do ProjetoAdicionar Item2Dicionários Parte 1
O que é um Dicionário?Criando um DicionárioAcessando ValoresModificando DicionáriosRecapitulação - Gerenciador de Receitas5Tomada de Decisão Avançada
Operador TernárioVerificações de PertencimentoVerificações de IdentidadeErros de IndentaçãoRecapitulação - Filtro de Férias8Gerenciador de Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno11Funções Avançadas
Retornando Múltiplos ValoresFunções Lambda Parte 1Funções Lambda Parte 2Desafio de Recapitulação - Lambda SortFunções Recursivas Parte 1Funções Recursivas Parte 2Recapitulação - Somar Listas Aninhadas14Funções de Ordem Superior
A Função MapA Função FilterRecapitulação - Validador de E-mailRecapitulação - Processador de Números3Dicionários Parte 2
Métodos de DicionárioDicionários AninhadosVerificando ChavesIterando em DicionáriosRecapitulação - Contador de Frequência6Conjuntos Parte 1
O que é um Conjunto?Operações BásicasMétodos de ConjuntosRecapitulação - Remover Duplicatas9Agregação de Dados Avançada
Usando SumEncontrando Mínimo e MáximoOrdenando Dados de Forma EficienteRecapitulação - Dictionary Sorter