📋 Listas y Bucles
Las listas son la estructura de datos más usada en CodeWars. Almacenan múltiples valores y permiten recorrerlos, filtrarlos y transformarlos.
📦 Crear listas
📖 Del libro
Una lista es una colección de elementos en un orden particular. Se crean con corchetes []
y los elementos se separan por comas. Puedes poner cualquier tipo de dato en una lista.
→ Python Crash Course, Capítulo 3, pp. 33-35
# Lista vacía
lista = []
# Lista con valores
numeros = [1, 2, 3, 4, 5]
nombres = ["Ana", "Luis", "Eva"]
# Leer lista de números del input
nums = list(map(int, input().split()))
🔍 Acceder a elementos
📖 Del libro
Los índices empiezan en 0. Índices negativos cuentan desde el final: -1 es el último.
→ Python Crash Course, Capítulo 3, pp. 34-35
nums = [10, 20, 30, 40, 50]
nums[0] # 10 (primero)
nums[-1] # 50 (último)
nums[1:4] # [20, 30, 40]
nums[::-1] # [50, 40, 30, 20, 10] (invertir)
✏️ Modificar listas
lista = [1, 2, 3]
lista.append(4) # [1, 2, 3, 4]
lista.insert(0, 0) # [0, 1, 2, 3, 4]
lista.remove(2) # [0, 1, 3, 4] (por valor)
lista.pop() # devuelve 4, lista = [0, 1, 3]
📊 Funciones útiles
nums = [4, 1, 7, 3, 9]
len(nums) # 5
sum(nums) # 24
min(nums) # 1
max(nums) # 9
7 in nums # True
🔀 Ordenar
📖 Del libro
sort() modifica la lista original, sorted() devuelve una nueva.
→ Python Crash Course, Capítulo 3, pp. 43-44
nums = [4, 1, 7, 3]
nums.sort() # nums = [1, 3, 4, 7]
nums.sort(reverse=True) # nums = [7, 4, 3, 1]
ordenada = sorted(nums) # nueva lista, nums no cambia
🔁 Recorrer listas
# for básico
for fruta in frutas:
print(fruta)
# con índice (enumerate)
for i, fruta in enumerate(frutas):
print(f"{i}: {fruta}")
# dos listas a la vez (zip)
for nombre, edad in zip(nombres, edades):
print(f"{nombre}: {edad}")
⚡ Comprensiones de lista
📖 Del libro
Crean listas en una línea: [expresión for elemento in lista if condición]
→ Python Crash Course, Capítulo 4, pp. 59-60
# Cuadrados
cuadrados = [x**2 for x in range(1, 6)] # [1, 4, 9, 16, 25]
# Con condición
pares = [x for x in range(10) if x % 2 == 0] # [0, 2, 4, 6, 8]
🎯 Patrones comunes
# Suma de elementos que cumplen condición
sum(x for x in nums if x > 0)
# Contar elementos
sum(1 for x in nums if x > 2)
# Posición del máximo
nums.index(max(nums))