Listas en Python: métodos, slicing y ejemplos

Publicado el: 11/07/2026
Tempo de leitura: 4 minutos
Vários logos do Python um ao lado do outro

Las listas en Python son colecciones ordenadas y mutables. Permiten guardar varios valores, acceder a ellos mediante índices, añadir y eliminar elementos, ordenar información y crear nuevas listas mediante filtros o transformaciones.

Una lista puede contener números, strings, objetos e incluso otras listas. Debido a su flexibilidad, aparece en casi todos los proyectos: inventarios, tareas, resultados de una API, filas de un archivo y registros temporales.

Crear una lista

empty = []

languages = ["Python", "JavaScript", "Go"]

mixed = [1, "text", True, 3.14]

La función list() convierte otros iterables:

letters = list("Python")
numbers = list(range(1, 6))

La referencia oficial del tipo list describe su construcción y operaciones básicas.

Acceder mediante índices

Los índices comienzan en cero:

colors = ["red", "green", "blue"]

print(colors[0])
print(colors[1])
print(colors[-1])

Los índices negativos cuentan desde el final. Una posición inexistente genera IndexError.

Modificar elementos

Las listas son mutables:

tasks = ["study", "review", "practice"]
tasks[1] = "write notes"

print(tasks)

También puedes reemplazar un rango:

numbers = [1, 2, 3, 4, 5]
numbers[1:4] = [20, 30]

print(numbers)

Para comprender con detalle inicio, fin y paso, consulta la guía de slicing en Python.

Slicing de listas

values = [10, 20, 30, 40, 50, 60]

print(values[1:4])
print(values[:3])
print(values[3:])
print(values[::2])
print(values[::-1])

El valor final queda excluido. El slicing crea una lista nueva, aunque los objetos internos pueden seguir compartidos.

Añadir elementos

append() añade un elemento al final:

fruits = ["apple", "banana"]
fruits.append("orange")

extend() añade varios elementos:

fruits.extend(["grape", "pear"])

insert() coloca un valor en una posición:

fruits.insert(1, "mango")

Evita utilizar insert(0, ...) repetidamente en listas grandes, porque todos los elementos deben desplazarse. Para colas frecuentes, collections.deque suele ser mejor.

Eliminar elementos

remove() elimina la primera coincidencia:

fruits.remove("banana")

Si el valor no existe, genera ValueError. pop() elimina por posición y devuelve el elemento:

last = fruits.pop()
first = fruits.pop(0)

del elimina posiciones o rangos:

numbers = [1, 2, 3, 4, 5]
del numbers[1]
del numbers[1:3]

clear() vacía la lista manteniendo el mismo objeto.

Buscar y contar

statuses = ["open", "closed", "open", "pending"]

print("open" in statuses)
print(statuses.count("open"))
print(statuses.index("pending"))

index() genera un error si no encuentra el valor. Cuando la ausencia sea normal, utiliza primero in o maneja la excepción.

Recorrer una lista

prices = [19.90, 8.50, 32.00]

for price in prices:
    print(f"${price:.2f}")

Cuando se necesita el índice:

for index, price in enumerate(prices, start=1):
    print(index, price)

La guía de bucles for en Python explica enumerate(), zip(), break y continue.

Ordenar listas

sort() modifica la lista:

numbers = [8, 3, 10, 1]
numbers.sort()
print(numbers)

sorted() devuelve una lista nueva y acepta cualquier iterable:

original = [8, 3, 10, 1]
ordered = sorted(original)

print(original)
print(ordered)

Para criterios personalizados:

users = [
    {"name": "Mia", "age": 31},
    {"name": "Ava", "age": 24},
    {"name": "Noah", "age": 28},
]

users.sort(key=lambda user: user["age"])

La comparación completa está en sort() vs sorted() en Python.

Copiar una lista

Asignar una lista a otra variable no crea una copia:

original = [1, 2, 3]
alias = original
alias.append(4)

print(original)

Para una copia superficial:

copy_a = original.copy()
copy_b = original[:]
copy_c = list(original)

Los objetos mutables anidados continúan compartidos:

matrix = [[1, 2], [3, 4]]
shallow = matrix.copy()
shallow[0].append(99)

print(matrix)

Cuando necesitas independencia completa, utiliza copy.deepcopy() con criterio.

List comprehensions

Una comprensión transforma valores:

squares = [number ** 2 for number in range(1, 6)]

También puede filtrar:

even_squares = [
    number ** 2
    for number in range(1, 11)
    if number % 2 == 0
]

La guía de list comprehensions en Python presenta condiciones, bucles anidados y generadores.

Listas anidadas

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
]

print(matrix[1][2])

Recorre filas y columnas:

for row in matrix:
    for value in row:
        print(value)

Para cálculo numérico intensivo, un array de NumPy ofrece operaciones vectorizadas y tipos homogéneos.

Combinar listas con zip()

names = ["Ava", "Noah", "Mia"]
scores = [91, 84, 95]

for name, score in zip(names, scores, strict=True):
    print(f"{name}: {score}")

strict=True ayuda a detectar longitudes diferentes cuando eso representa un error.

Desempaquetar una lista

first, second, third = [10, 20, 30]

start, *middle, end = [1, 2, 3, 4, 5]

El asterisco recoge los elementos restantes en otra lista.

Ejemplo: lista de tareas

tasks = []


def add_task(description):
    cleaned = description.strip()

    if not cleaned:
        raise ValueError("La tarea no puede estar vacía")

    tasks.append({
        "description": cleaned,
        "completed": False,
    })


def complete_task(index):
    tasks[index]["completed"] = True


add_task("Estudiar listas")
add_task("Resolver ejercicios")
complete_task(0)

for index, task in enumerate(tasks, start=1):
    marker = "✓" if task["completed"] else " "
    print(f"{index}. [{marker}] {task['description']}")

Este ejemplo combina listas, diccionarios, funciones y validación. La guía de diccionarios en Python explica cómo representar registros con campos.

Eliminar duplicados

Si el orden no importa:

unique = list(set(values))

Para conservar el orden:

unique = list(dict.fromkeys(values))

Los sets son adecuados para pertenencia y unicidad. La guía de sets en Python explica unión, intersección y diferencia.

Rendimiento básico

Añadir o eliminar al final suele ser eficiente. Insertar al principio o buscar un valor requiere recorrer o desplazar elementos. Si haces muchas búsquedas de pertenencia, considera un set. Si necesitas relacionar nombres con valores, utiliza un diccionario.

Errores frecuentes

  • Confundir asignación con copia.
  • Modificar una lista mientras se recorre.
  • Usar append() cuando se quería extend().
  • Esperar que sort() devuelva la lista.
  • Acceder a índices sin validar el tamaño.
  • Crear comprensiones demasiado complejas.
  • Elegir una lista cuando se necesita búsqueda rápida por clave.

Documentación adicional

El tutorial oficial sobre listas cubre métodos, pilas, colas y comprensiones.

Conclusión

Las listas son la colección general más utilizada de Python. Domina índices, slicing, métodos de modificación, recorridos, ordenación y copias. Después practica con una lista de tareas, un inventario o un informe para aprender cuándo conviene cambiar a una tupla, set o diccionario.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Contenido del artículo

    Artículos relacionados

    Logo do Python com as palavras global e local
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Alcance de variables en Python: entiende la regla LEGB

    Entiende el alcance de variables en Python con la regla LEGB, global, nonlocal, closures, sombreado, mutabilidad y UnboundLocalError.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Operações matemáticas usando o módulo math em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Módulo math en Python: operaciones matemáticas esenciales

    Aprende el módulo math en Python: raíces, potencias, redondeos, trigonometría, logaritmos, constantes, isclose y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Geração de números aleatórios seguros usando secrets em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Módulo secrets en Python: números y tokens seguros

    Aprende secrets en Python para generar contraseñas, códigos y tokens seguros con randbelow, choice, token_hex, token_urlsafe y compare_digest.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Uso do operador walrus para atribuições inline em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Operador walrus en Python: guía con ejemplos

    Aprende el operador walrus := en Python: condiciones, while, comprensiones, lectura por bloques, regex, alcance y buenas prácticas.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026
    Uso da função zip para combinar listas em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    zip() en Python: combina listas e iterables correctamente

    Aprende zip() en Python para combinar listas, crear diccionarios, usar strict, zip_longest, desempaquetar valores y evitar pérdidas silenciosas.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Uso do módulo time para controlar tempo em scripts Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Módulo time en Python: pausas, timestamps y rendimiento

    Aprende el módulo time en Python: timestamps, sleep, monotonic, perf_counter, struct_time, strftime y buenas prácticas para medir tiempo.

    Ler mais

    Tempo de leitura: 5 minutos
    11/07/2026