Curso-lenguaje-python/python-total/dia_04/11_comprension_listas.py
Manuel Vergara f4e9797c4b Restructure content and add notes from HolaMundo
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
2023-05-20 09:36:26 +02:00

71 lines
1.4 KiB
Python

"""
Compresión de listas
"""
# Las compresión de listas susituye el siguiente ejemplo
lista = []
palabra = "python"
for letra in palabra:
lista.append(letra)
print(lista)
# Con una sintaxis más breve, de 4 a 1 linea
lista_comp = [letra for letra in "python"]
print(lista_comp)
# Ejemplo con operación
lista_num = [n /2 for n in range(0,21,2)]
print(lista_num)
# Ejemplo con condicional para agregar en la lista
lista_condici = [n for n in range(0,21,2) if n * 2 > 10]
print(lista_condici)
# Ejemplo anterior pero con else. Ahora es menos legible
# porque hay que ponerlo delante
# Lo que hacemos es sustituir el n por un texto
lista_else = [n if n * 2 > 10 else 'no' for n in range(0,21,2)]
print(lista_else)
# Ejemplo práctico
## Transformar pies en metros
pies = [10,20,30,40,50]
metros = []
for pie in pies:
metros.append(pie*3.281)
print(metros)
## Ahora la compresión del código
metros_compr = [pie*3.281 for pie in pies]
print(metros_compr)
# Valores cuadrados
valores = [1, 2, 3, 4, 5, 6, 9.5]
valores_cuadrados = [v**2 for v in valores]
print(valores_cuadrados)
# Guardar pares en la lista
valores_pares = [v for v in valores if (v%2 == 0)]
print(valores_pares)
# De fahrenheit a celsius
temperatura_fahrenheit = [32, 212, 275]
grados_celsius = [(grados_fahrenheit-32)*(5/9) for grados_fahrenheit in temperatura_fahrenheit]
print(grados_celsius)