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

    Uso do with para abrir arquivos com segurança em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Sentencia with en Python: archivos seguros y contextos

    Aprende la sentencia with en Python para abrir archivos con seguridad, manejar errores, usar context managers, contextlib y varios recursos.

    Ler mais

    Tempo de leitura: 4 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 y ejemplos

    Aprende el módulo math en Python: raíces, redondeos, trigonometría, logaritmos, combinatoria, constantes y comparaciones de floats.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Programador pensando enquanto analisa código em dois monitores
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Cómo aprender programación desde cero: guía práctica

    Aprende programación desde cero con una ruta práctica de lógica, herramientas, ejercicios, proyectos, depuración, Git y hábitos de estudio.

    Ler mais

    Tempo de leitura: 6 minutos
    11/07/2026
    ícone de loop com o texto 'For' abaixo
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Bucles for en Python: guía completa

    Aprende bucles for en Python con range, enumerate, zip, diccionarios, break, continue, bucles anidados y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026
    Manipulação e formatação de strings em Python
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Strings en Python: guía completa para principiantes

    Aprende strings en Python: creación, índices, slicing, métodos, búsqueda, formato, Unicode, codificación y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 3 minutos
    11/07/2026
    código Python de uma tupla com o texto separado formando a frase "O que são tuplas?"
    Fundamentos
    Foto de perfil de Leandro Hirt da Academify

    Tuplas en Python: guía completa para principiantes

    Aprende tuplas en Python: creación, índices, slicing, inmutabilidad, desempaquetado, métodos, NamedTuple y ejemplos prácticos.

    Ler mais

    Tempo de leitura: 4 minutos
    11/07/2026