#!/usr/bin/env python3 """ Una comprensión de lista ofrece una sintaxis compacta para generar una nueva lista partiendo de una existente Sintaxis básica: newlist = [expression for item in iterable if condition == True] El valor de retorno es una nueva lista, la lista original no se modifica """ # -------------------------------------------------------- # EJEMPLO 01 # -------------------------------------------------------- fruits = ["apple", "banana", "cherry", "kiwi", "mango"] newlist = [] for fruit in fruits: if "a" in fruit: newlist.append(fruit) print(newlist) # ['apple', 'banana', 'mango'] # Equivalente fruits = ["apple", "banana", "cherry", "kiwi", "mango"] newlist = [fruit for fruit in fruits if "a" in fruit] print(newlist) # ['apple', 'banana', 'mango'] # -------------------------------------------------------- # EJEMPLO 02 # -------------------------------------------------------- newlist = [fruit for fruit in fruits if fruit != "apple"] print(newlist) # ['banana', 'cherry', 'kiwi', 'mango'] # -------------------------------------------------------- # EJEMPLO 03 # -------------------------------------------------------- newlist = [x for x in fruits] print(newlist) # ['apple', 'banana', 'cherry', 'kiwi', 'mango'] # -------------------------------------------------------- # EJEMPLO 04 # -------------------------------------------------------- # The iterable can be any iterable object, like a list, tuple, set etc. newlist = [x for x in range(10)] print(newlist) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # -------------------------------------------------------- # EJEMPLO 05 # -------------------------------------------------------- newlist = [x for x in range(10) if x < 5] print(newlist) # [0, 1, 2, 3, 4 # -------------------------------------------------------- # EJEMPLO 06 # -------------------------------------------------------- # Aplica método upper para pasar a mayusculas newlist = [x.upper() for x in fruits] print(newlist) # ['APPLE', 'BANANA', 'CHERRY', 'KIWI', 'MANGO'] # -------------------------------------------------------- # EJEMPLO 07 # -------------------------------------------------------- newlist = ['hello' for x in fruits] print(newlist) # ['hello', 'hello', 'hello', 'hello', 'hello'] # -------------------------------------------------------- # EJEMPLO 08 # -------------------------------------------------------- # La expresion puede contener también condicionales, no como un filtro, sino como una forma de controlar la salida # "Return the item if it is not banana, if it is banana return orange". newlist = [x if x != "banana" else "orange" for x in fruits] print(newlist) # ['apple', 'orange', 'cherry', 'kiwi', 'mango'