Listas y Tuplas: Organiza Colecciones de Datos
Hasta ahora hemos trabajado con variables que guardan un solo valor. En la vida real necesitamos manejar colecciones: una lista de productos, nombres de usuarios, temperaturas de la semana. Para eso existen las listas y las tuplas.
Listas en PythonUna lista es una coleccion ordenada y mutable (modificable) de elementos. Se define con corchetes.
frutas = ['manzana', 'banana', 'cereza']
numeros = [1, 2, 3, 4, 5]
mixta = [42, 'hola', True, 3.14, None]
lista_vacia = []
print(frutas)
print(type(frutas))
print(len(frutas))
Indexacion: Acceder a elementos
Cada elemento tiene un indice. En Python los indices empiezan en 0.
frutas = ['manzana', 'banana', 'cereza', 'durazno', 'kiwi']
# Indices positivos
print(frutas[0]) # manzana
print(frutas[1]) # banana
print(frutas[4]) # kiwi
# Indices negativos
print(frutas[-1]) # kiwi
print(frutas[-2]) # durazno
Slicing: Sub-listas
numeros = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numeros[2:5]) # [2, 3, 4]
print(numeros[:4]) # [0, 1, 2, 3]
print(numeros[6:]) # [6, 7, 8, 9]
print(numeros[::2]) # [0, 2, 4, 6, 8]
print(numeros[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
Modificar listas
productos = ['laptop', 'mouse', 'teclado']
productos[1] = 'monitor'
print(productos)
productos.append('webcam')
print(productos)
productos.insert(1, 'mouse')
print(productos)
productos.extend(['auriculares', 'microfono'])
print(len(productos))
Eliminar elementos
colores = ['rojo', 'verde', 'azul', 'amarillo', 'verde']
colores.remove('verde')
print(colores)
eliminado = colores.pop(0)
print(eliminado)
print(colores)
numeros = [1, 2, 3, 4, 5, 6]
del numeros[2:4]
print(numeros)
Metodos utiles
numeros = [3, 1, 4, 1, 5, 9, 2, 6, 5]
print(numeros.count(1))
print(numeros.index(5))
numeros.sort()
print(numeros)
numeros.sort(reverse=True)
print(numeros)
copia = numeros.copy()
numeros.clear()
print(numeros)
print(copia)
Funciones integradas para listas
precios = [25.99, 12.50, 89.99, 5.00, 45.75]
print(min(precios))
print(max(precios))
print(sum(precios))
print(len(precios))
precios_ordenados = sorted(precios)
print(precios_ordenados)
print(precios) # Sin cambios
Buscar en listas
frutas = ['manzana', 'banana', 'cereza']
print('banana' in frutas) # True
print('kiwi' in frutas) # False
print('kiwi' not in frutas) # True
Caso real: Sistema de inventario
inventario = []
def agregar_producto(nombre, cantidad, precio):
inventario.append({'nombre': nombre, 'cantidad': cantidad, 'precio': precio})
print(f'Producto agregado: {nombre}')
def mostrar_inventario():
if not inventario:
print('El inventario esta vacio')
return
total_valor = 0
for i, prod in enumerate(inventario, 1):
valor = prod['cantidad'] * prod['precio']
total_valor += valor
print(f"{i}. {prod['nombre']}: {prod['cantidad']} x {prod['precio']} = {valor}")
print(f'Valor total: {total_valor}')
def buscar_producto(nombre):
for prod in inventario:
if prod['nombre'].lower() == nombre.lower():
return prod
return None
agregar_producto('Laptop', 10, 800)
agregar_producto('Mouse', 50, 25)
agregar_producto('Teclado', 30, 60)
mostrar_inventario()
prod = buscar_producto('mouse')
if prod:
print(f'Encontrado: {prod}')
Tuplas: Colecciones inmutables
Una tupla es como una lista, pero inmutable: una vez creada no se puede modificar. Se define con parentesis.
coordenadas = (40.7128, -74.0060)
colores_rgb = (255, 128, 0)
tupla_vacia = ()
tupla_uno = (42,) # La coma es obligatoria para un solo elemento
print(coordenadas[0])
print(len(colores_rgb))
Inmutabilidad
punto = (3, 7)
# Esto fallaria:
# punto[0] = 10 # TypeError
# Puedes crear una nueva tupla
nuevo_punto = (10, punto[1])
print(nuevo_punto)
Cuando usar tuplas
- Los datos no deben cambiar (coordenadas, configuracion)
- Mayor rendimiento que las listas
- Pueden ser claves de diccionario
capitales = {
(40.7128, -74.0060): 'Nueva York',
(51.5074, -0.1278): 'Londres',
(-34.6037, -58.3816): 'Buenos Aires'
}
print(capitales[(-34.6037, -58.3816)])
Desempaquetar tuplas
punto = (3, 7)
x, y = punto
print(f'x={x}, y={y}')
nombre, edad, ciudad = ('Ana', 28, 'Buenos Aires')
print(f'{nombre} tiene {edad} anios en {ciudad}')
primero, *resto = [1, 2, 3, 4, 5]
print(primero) # 1
print(resto) # [2, 3, 4, 5]
Listas de listas (matrices)
matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matriz[1][2]) # 6
for fila in matriz:
for elemento in fila:
print(elemento, end=' ')
print()
💡 Concepto Clave
Revisemos los puntos más importantes de esta lección antes de continuar.
Resumen
| Caracteristica | Lista | Tupla |
|---|---|---|
| Sintaxis | [1, 2, 3] | (1, 2, 3) |
| Mutable | Si | No |
| Velocidad | Mas lenta | Mas rapida |
| Como clave de dict | No | Si |
En la proxima leccion estudiaremos los diccionarios, la estructura mas versatil de Python.
🧠Pon a prueba tu conocimiento
¿Cuál es el aspecto más importante que aprendiste en esta lección?
- Comprendo el concepto principal y puedo explicarlo con mis palabras
- Entiendo cómo aplicarlo en mi situación especÃfica
- Necesito repasar algunas partes antes de continuar
- Quiero ver más ejemplos prácticos del tema
✅ ¡Excelente! Continúa con la siguiente lección para profundizar más.