Resumen

Aprende a dominar las listas en Python con ejemplos simples y prácticos. Entenderás qué son, cómo funcionan los índices, cómo modificar elementos y qué métodos usar para agregar, eliminar, ordenar y unir colecciones. Con estas bases, escribirás código más claro y efectivo.

¿Qué es una lista en Python y cómo se comporta?

Las listas son colecciones almacenadas en una sola variable. Son ordenadas, mutables y permiten duplicados. Esto habilita operaciones de actualización y acceso preciso por posición sin perder el orden original.

¿Qué significa que sea ordenada, mutable y con duplicados?

  • Una lista mantiene el orden de inserción.
  • Se pueden cambiar sus elementos por índice.
  • Acepta elementos repetidos.

Ejemplo base con frutas, verificación de tipo y acceso por índice:

frutas = ["manzana", "naranja", "mandarina"]
print(frutas)              # ['manzana', 'naranja', 'mandarina']
print(type(frutas))        # 
print(frutas[1])           # 'naranja' (índices desde 0)

# Modificar por índice (mutabilidad)
frutas[1] = "banana"
print(frutas[1])           # 'banana'
print(frutas)              # ['manzana', 'banana', 'mandarina']

# Duplicados
frutas.append("naranja")   # ahora hay otra 'naranja' al final
print(frutas)              # ['manzana', 'banana', 'mandarina', 'naranja']

Nota clave: Python ejecuta de arriba hacia abajo. Verás cambios reflejados solo después de la línea que modifica la lista.

¿Se pueden mezclar tipos y medir el largo?

Sí. Una lista puede contener distintos tipos: string, número y booleano. Para contar elementos, usa len (proviene de length en inglés).

mixta = ["TuNombre", 42, True]
print(mixta)        # ['TuNombre', 42, True]
print(type(mixta))  # 

print(len(mixta))   # 3
print(len(frutas))  # 4

¿Cómo acceder y recorrer por índices y rangos?

Trabajar con índices e intervalos te permite seleccionar porciones de la lista. Recuerda: los índices inician en 0 y los rangos usan el patrón inicio:fin sin incluir el fin.

¿Cómo funcionan los índices y el slicing?

  • Índice directo: frutas[1] accede al segundo elemento.
  • Rango inicio:fin (no inclusivo): frutas[0:2].
  • Desde el inicio: frutas[:2].
  • Desde un índice al final: frutas[1:].
# Suponiendo frutas = ['manzana', 'banana', 'mandarina', 'naranja']
print(frutas[0:2])  # ['manzana', 'banana']
print(frutas[:2])   # ['manzana', 'banana']
print(frutas[1:])   # ['banana', 'mandarina', 'naranja']

La regla práctica: el límite superior no se incluye. Úsalo para particionar sin errores.

¿Cómo comprobar pertenencia con in?

La palabra clave in verifica si un elemento existe en la colección y evalúa a verdadero o falso. Útil en condiciones if.

if "manzana" in frutas:
    print("la manzana está dentro de las frutas")
# Salida: la manzana está dentro de las frutas

¿Qué métodos prácticos optimizan el trabajo con listas?

Con métodos incorporados, puedes agregar, insertar, eliminar y ordenar sin esfuerzo. Estos atajos hacen tu código más legible y expresivo.

¿Cómo agregar, eliminar y ordenar elementos?

Ejemplo con vehículos y métodos clave: append, insert, remove, pop, sort, reverse.

vehiculos = ["auto", "moto", "avión"]

# Agregar al final
vehiculos.append("barco")
# ['auto', 'moto', 'avión', 'barco']

# Insertar por índice (desplaza lo que sigue)
vehiculos.insert(1, "bicicleta")
# ['auto', 'bicicleta', 'moto', 'avión', 'barco']

# Eliminar por valor
vehiculos.remove("auto")
# ['bicicleta', 'moto', 'avión', 'barco']

# Eliminar por índice
vehiculos.pop(1)  # quita 'moto'
# ['bicicleta', 'avión', 'barco']

# Ordenar alfabéticamente
vehiculos.sort()
# ['avión', 'barco', 'bicicleta']

# Orden invertido
vehiculos.reverse()
# ['bicicleta', 'barco', 'avión']

Puntos clave: - append agrega al final. - insert(i, x) agrega en el índice i. - remove(x) borra la primera coincidencia del valor. - pop(i) quita por índice y devuelve el elemento. - sort() ordena en forma alfabética por defecto. - reverse() invierte el orden actual.

¿Cómo unir listas con + y extend?

Tienes dos formas de concatenar colecciones: con el operador + o con extend. La diferencia: + crea una nueva lista; extend modifica la existente.

coleccion1 = [1, 2, 3]
coleccion2 = [4, 5, 6]

# Nueva lista concatenada
coleccion3 = coleccion1 + coleccion2
print(coleccion3)  # [1, 2, 3, 4, 5, 6]

# Extender en sitio (modifica coleccion1)
coleccion1.extend(coleccion2)
print(coleccion1)  # [1, 2, 3, 4, 5, 6]

Consejo práctico: - Usa + cuando quieras conservar las originales. - Usa extend cuando busques eficiencia y modificar en sitio.

¿Te quedó alguna duda o tienes un ejemplo propio con listas que quieras optimizar? Compártelo y lo revisamos juntos.