Añadir condiciones
Parte de la sección Logic & Flow del Journey de Python de Coddy — lección 52 de 78.
Las comprensiones de listas se vuelven aún más potentes cuando se añade lógica condicional. Esto permite crear nuevas listas basadas en listas existentes, filtrando y transformando elementos según condiciones específicas.
La sintaxis para añadir una condición a una comprensión de lista es:
new_list = [expression for item in iterable if condition]Aquí tienes un desglose de la sintaxis:
new_list: La nueva lista que se creará.
expression: El valor que se incluirá ennew_list. Esto puede ser una versión modificada deitem.
for item in iterable: Un bucle que itera sobre cada elemento en eliterable(p. ej., una lista, tupla o rango).
item: El elemento actual que se está procesando en el bucle.
if condition: Un filtro que determina si elitemactual debe incluirse ennew_list. Laexpressionsolo se evalúa si laconditionesTrue.
Aquí tienes un ejemplo:
numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# Salida: [2, 4, 6]En este ejemplo, la comprensión de listas crea una nueva lista llamada evens tomando cada elemento n de la lista numbers e incluyéndolo solo si es par (es decir, n % 2 == 0).
Desafío
FácilCrea una función llamada filter_and_square que reciba una lista de números numbers como argumento. La función debe utilizar una comprensión de listas para crear una nueva lista que incluya los cuadrados de solo los números positivos de la lista original. La función debe devolver la nueva lista.
Hoja de referencia
Las comprensiones de listas con lógica condicional le permiten filtrar y transformar elementos basándose en condiciones especificadas:
new_list = [expression for item in iterable if condition]expression: El valor que se incluirá en la nueva listafor item in iterable: Iterar sobre cada elementoif condition: Filtro que determina si el elemento debe ser incluido
Ejemplo - filtrado de números pares:
numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# Salida: [2, 4, 6]Pruébalo tú mismo
def filter_and_square(numbers):
# Escribe el código aquíEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Logic & Flow
1Exploración de variables
ConstantesAsignación de múltiples variablesIntercambio de variablesVariables de marcador de posiciónRedondear númerosCasting de listas4Aplicación de Agenda de Contactos
Mostrar MenúAgregar Contacto7Conjuntos Parte 2
Operaciones matemáticas Parte 1Operaciones matemáticas Parte 2Resumen - Búsqueda del tesoroSubconjuntos y superconjuntosIterar sobre conjuntosResumen - Rastreador de torneos10Comprensión de listas básica
La sintaxisCreación de listas simplesAñadir condicionesUso de agregación de datosResumen - La casa de las listasResumen - Elementos de libertad13Sistema de Gestión de Inventarios
Descripción general del proyectoAgregar artículo2Diccionarios Parte 1
¿Qué es un diccionario?Crear un diccionarioAcceder a los valoresModificar diccionariosResumen - Gestor de recetas5Toma de decisiones avanzada
Operador ternarioComprobaciones de pertenenciaComprobaciones de identidadErrores de sangríaRepaso - Filtro de vacaciones8Gestor de registros de estudiantes
Descripción general del proyectoAñadir estudiante11Funciones avanzadas
Retornar múltiples valoresFunciones Lambda Parte 1Funciones Lambda Parte 2Desafío de repaso - Lambda SortFunciones recursivas Parte 1Funciones recursivas Parte 2Repaso - Sumar listas anidadas14Funciones de orden superior
La función MapLa función FilterRepaso - Validador de emailsRepaso - Procesador de números3Diccionarios Parte 2
Métodos de diccionariosDiccionarios anidadosVerificación de clavesIterar sobre diccionariosResumen - Contador de frecuencia6Conjuntos - Parte 1
¿Qué es un conjunto?Operaciones básicasMétodos de conjuntosResumen - Eliminar duplicados9Agregación de datos avanzada
Uso de SumBúsqueda de mínimo y máximoOrdenar datos de manera eficienteRepaso - Ordenador de diccionarios