¿Qué es una lista en Python?
Una lista es una colección ordenada de elementos que puedes almacenar en una sola variable. Piensa en ella como una fila de casilleros numerados, donde cada casillero contiene un valor. A diferencia de las variables simples que almacenan un solo dato, las listas te permiten almacenar múltiples datos relacionados.
En Python, las listas se crean usando corchetes [] y separando los elementos con comas. Esta simplicidad las convierte en la estructura de datos más utilizada por programadores de todos los niveles.
Creación de listas
Crear una lista en Python es muy intuitivo. Puedes crear listas de diferentes maneras:
Creación directa
# Lista de números
numeros = [1, 2, 3, 4, 5]
# Lista de textos (strings)
frutas = ["manzana", "plátano", "naranja"]
# Lista vacía
vacia = []
# Lista con diferentes tipos de datos
mezclada = [1, "hola", 3.14, True]
# Lista usando la función list()
lista_desde_rango = list(range(1, 6)) # [1, 2, 3, 4, 5]
lista_desde_texto = list("python") # ['p', 'y', 't', 'h', 'o', 'n']
print(numeros) # Output: [1, 2, 3, 4, 5]
print(frutas) # Output: ['manzana', 'plátano', 'naranja']
print(mezclada) # Output: [1, 'hola', 3.14, True]Acceso a elementos: Índices
Cada elemento en una lista tiene una posición llamada índice. Los índices en Python comienzan en 0, no en 1. Esto significa que el primer elemento tiene índice 0, el segundo tiene índice 1, y así sucesivamente.
colores = ["rojo", "verde", "azul", "amarillo", "morado"]
print(colores[0]) # Output: 'rojo' (primer elemento)
print(colores[1]) # Output: 'verde' (segundo elemento)
print(colores[4]) # Output: 'morado' (quinto elemento)
print(colores[-1]) # Output: 'morado' (último elemento)
print(colores[-2]) # Output: 'amarillo' (penúltimo elemento)-1 siempre se refiere al último elemento, -2 al penúltimo, y así sucesivamente.Rebanado de listas (Slicing)
También puedes obtener múltiples elementos usando el rebanado o slicing. La sintaxis es lista[inicio:fin], donde se incluye el elemento inicial y se excluye el final.
numeros = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numeros[2:7]) # Output: [2, 3, 4, 5, 6]
print(numeros[:5]) # Output: [0, 1, 2, 3, 4]
print(numeros[5:]) # Output: [5, 6, 7, 8, 9]
print(numeros[::2]) # Output: [0, 2, 4, 6, 8] (cada segundo elemento)
print(numeros[::-1]) # Output: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (lista invertida)Modificación de listas
Una de las ventajas principales de las listas es que son mutables, es decir, puedes modificar sus elementos después de crearlas.
Modificar un elemento específico
frutas = ["manzana", "plátano", "naranja"]
print(frutas) # Output: ['manzana', 'plátano', 'naranja']
frutas[0] = "fresa" # Cambia el primer elemento
print(frutas) # Output: ['fresa', 'plátano', 'naranja']
frutas[-1] = "uva" # Cambia el último elemento
print(frutas) # Output: ['fresa', 'plátano', 'uva']Agregar elementos
colores = ["rojo", "verde"]
# append() - agrega al final
colores.append("azul")
print(colores) # Output: ['rojo', 'verde', 'azul']
# insert() - agrega en una posición específica
colores.insert(1, "amarillo")
print(colores) # Output: ['rojo', 'amarillo', 'verde', 'azul']
# extend() - agrega múltiples elementos
colores.extend(["morado", "naranja"])
print(colores) # Output: ['rojo', 'amarillo', 'verde', 'azul', 'morado', 'naranja']Eliminar elementos
frutas = ["manzana", "plátano", "naranja", "fresa"]
# remove() - elimina por valor
frutas.remove("plátano")
print(frutas) # Output: ['manzana', 'naranja', 'fresa']
# pop() - elimina por índice (devuelve el elemento eliminado)
eliminado = frutas.pop(1)
print(frutas) # Output: ['manzana', 'fresa']
print(eliminado) # Output: 'naranja'
# del - elimina por índice
del frutas[0]
print(frutas) # Output: ['fresa']
# clear() - elimina todos los elementos
frutas.clear()
print(frutas) # Output: []remove() y el valor no existe, Python generará un error ValueError. Siempre verifica que el elemento exista antes de intentar eliminarlo, o usa un bloque try-except.Funciones útiles para listas
| Función | Descripción | Ejemplo |
|---|---|---|
len() | Devuelve la longitud de la lista | len([1,2,3]) → 3 |
max() | Devuelve el valor máximo | max([1,5,3]) → 5 |
min() | Devuelve el valor mínimo | min([1,5,3]) → 1 |
sum() | Devuelve la suma de elementos | sum([1,5,3]) → 9 |
sorted() | Devuelve una lista ordenada (sin modificar la original) | sorted([3,1,2]) → [1,2,3] |
count() | Cuenta las ocurrencias de un elemento | [1,2,2].count(2) → 2 |
index() | Devuelve el índice de la primera ocurrencia | ['a','b'].index('b') → 1 |
numeros = [4, 2, 8, 1, 5]
print(len(numeros)) # 5
print(max(numeros)) # 8
print(min(numeros)) # 1
print(sum(numeros)) # 20
print(sorted(numeros)) # [1, 2, 4, 5, 8]
print(numeros) # [4, 2, 8, 1, 5] (la lista original no cambió)Comprobación de pertenencia
Puedes verificar si un elemento existe en una lista usando el operador in:
frutas = ["manzana", "plátano", "naranja"]
print("manzana" in frutas) # True
print("uva" in frutas) # False
print("fresa" not in frutas) # Truein es más eficiente en listas que otros métodos, especialmente cuando necesitas verificar pertenencia frecuentemente. Para listas muy grandes, considera usar conjuntos (set) en lugar de listas.Recorrer una lista
Para acceder a cada elemento de una lista, puedes usar un bucle for:
frutas = ["manzana", "plátano", "naranja"]
# Recorrido simple
for fruta in frutas:
print(fruta)
# Recorrido con enumerate (índice y valor)
for indice, fruta in enumerate(frutas):
print(f"Índice {indice}: {fruta}")Práctica guiada
- Crea una lista con los números del 1 al 10:
numeros = list(range(1, 11)) - Imprime el tercer y el octavo elemento.
- Cambia el valor del elemento en posición 2 a 100.
- Agrega el número 11 al final de la lista.
- Elimina el primer elemento usando
pop(). - Imprime la longitud final de la lista.
Solución al ejercicio:
numeros = list(range(1, 11))
print(f"Lista inicial: {numeros}")
# Tercer y octavo elemento (índices 2 y 7)
print(f"Tercer elemento: {numeros[2]}")
print(f"Octavo elemento: {numeros[7]}")
# Cambiar valor en posición 2
numeros[2] = 100
print(f"Después de cambiar posición 2: {numeros}")
# Agregar 11 al final
numeros.append(11)
print(f"Después de append: {numeros}")
# Eliminar primer elemento
primero = numeros.pop(0)
print(f"Elemento eliminado: {primero}")
print(f"Lista final: {numeros}")
print(f"Longitud final: {len(numeros)}")"Las listas son como los cimientos de una casa: cuando las dominas bien, todo lo demás en Python se vuelve más fácil de construir."
[], se accede por índice (empezando en 0), se modifican con métodos como append(), insert(), remove() y pop(). Son esenciales para cualquier programa en Python.¿Cuál es el output del siguiente código?
frutas = ["manzana", "plátano", "cereza"]
frutas.insert(1, "uva")
print(frutas[2])- A) "manzana"
- B) "uva"
- C) "plátano"
- D) "cereza"
¿Cómo crearías una lista con los números del 1 al 5?
- A) [1-5]
- B) list(1, 2, 3, 4, 5)
- C) list(range(1, 6))
- D) [1, 2, 3, 4, 5]
Con esto concludes la lección sobre listas. Recuerda practicar creando tus propias listas y experimentando con los diferentes métodos y operaciones. ¡Las listas son fundamentales y las usarás constantemente en tu camino como programador Python!