Listas en Python: Guía Completa con 20+ Métodos y Ejemplos

👤 Admin 📅 13 de noviembre, 2025 ⏱ 15 min 🏷 Python Básico

¿Qué son las Listas?

Las listas son estructuras de datos ordenadas y mutables que pueden contener elementos de diferentes tipos.

Crear Listas

# Lista vacía
lista_vacia = []
otra_vacia = list()

# Lista con elementos
numeros = [1, 2, 3, 4, 5]
mixta = [1, "texto", 3.14, True]
anidada = [[1, 2], [3, 4], [5, 6]]

Acceder a Elementos

frutas = ["manzana", "pera", "uva", "naranja"]

# Por índice
print(frutas[0])   # manzana
print(frutas[-1])  # naranja (último)

# Slicing (rebanado)
print(frutas[1:3])   # ["pera", "uva"]
print(frutas[:2])    # ["manzana", "pera"]
print(frutas[2:])    # ["uva", "naranja"]
print(frutas[::2])   # ["manzana", "uva"]

Modificar Listas

numeros = [1, 2, 3, 4, 5]

# Cambiar un elemento
numeros[0] = 10
print(numeros)  # [10, 2, 3, 4, 5]

# Cambiar varios elementos
numeros[1:3] = [20, 30]
print(numeros)  # [10, 20, 30, 4, 5]

Métodos de Listas

Agregar Elementos

frutas = ["manzana", "pera"]

# append() - agregar al final
frutas.append("uva")
print(frutas)  # ["manzana", "pera", "uva"]

# insert() - insertar en posición
frutas.insert(1, "kiwi")
print(frutas)  # ["manzana", "kiwi", "pera", "uva"]

# extend() - agregar múltiples elementos
frutas.extend(["naranja", "melón"])
print(frutas)

Eliminar Elementos

numeros = [1, 2, 3, 4, 5, 3]

# remove() - elimina primera aparición
numeros.remove(3)
print(numeros)  # [1, 2, 4, 5, 3]

# pop() - elimina y retorna elemento
ultimo = numeros.pop()
print(ultimo)   # 3
print(numeros)  # [1, 2, 4, 5]

# del - elimina por índice
del numeros[0]
print(numeros)  # [2, 4, 5]

# clear() - vacía la lista
numeros.clear()
print(numeros)  # []

Búsqueda y Conteo

numeros = [1, 2, 3, 2, 4, 2, 5]

# count() - contar apariciones
print(numeros.count(2))  # 3

# index() - encontrar posición
print(numeros.index(3))  # 2

# in - verificar existencia
if 3 in numeros:
    print("3 está en la lista")

Ordenar y Revertir

numeros = [5, 2, 8, 1, 9]

# sort() - ordena in-place
numeros.sort()
print(numeros)  # [1, 2, 5, 8, 9]

# sort(reverse=True) - orden descendente
numeros.sort(reverse=True)
print(numeros)  # [9, 8, 5, 2, 1]

# sorted() - retorna nueva lista ordenada
original = [5, 2, 8, 1]
ordenada = sorted(original)
print(original)  # [5, 2, 8, 1]
print(ordenada)  # [1, 2, 5, 8]

# reverse() - invierte orden
numeros = [1, 2, 3, 4]
numeros.reverse()
print(numeros)  # [4, 3, 2, 1]

Operaciones con Listas

# Concatenación
lista1 = [1, 2, 3]
lista2 = [4, 5, 6]
resultado = lista1 + lista2
print(resultado)  # [1, 2, 3, 4, 5, 6]

# Repetición
lista = ["a", "b"]
print(lista * 3)  # ["a", "b", "a", "b", "a", "b"]

# Longitud
print(len(lista))  # 2

# Min, Max, Sum
numeros = [5, 2, 8, 1, 9]
print(min(numeros))  # 1
print(max(numeros))  # 9
print(sum(numeros))  # 25

List Comprehension

# Crear lista de cuadrados
cuadrados = [x**2 for x in range(10)]
print(cuadrados)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# Con condición
pares = [x for x in range(20) if x % 2 == 0]
print(pares)  # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

# Transformar lista
frutas = ["manzana", "pera", "uva"]
mayusculas = [f.upper() for f in frutas]
print(mayusculas)  # ["MANZANA", "PERA", "UVA"]

Listas Anidadas

# Matriz 3x3
matriz = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# Acceder a elementos
print(matriz[0][0])  # 1
print(matriz[1][2])  # 6

# Recorrer matriz
for fila in matriz:
    for elemento in fila:
        print(elemento, end=" ")
    print()  # Nueva línea

Copiar Listas

# Copia por referencia (¡CUIDADO!)
lista1 = [1, 2, 3]
lista2 = lista1
lista2[0] = 99
print(lista1)  # [99, 2, 3] - ¡Ambas cambian!

# Copia superficial
lista1 = [1, 2, 3]
lista2 = lista1.copy()
# o lista2 = lista1[:]
# o lista2 = list(lista1)
lista2[0] = 99
print(lista1)  # [1, 2, 3] - No cambia
print(lista2)  # [99, 2, 3]

Ejemplos Prácticos

Filtrar Lista

numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
pares = [n for n in numeros if n % 2 == 0]
print(pares)  # [2, 4, 6, 8, 10]

Eliminar Duplicados

numeros = [1, 2, 2, 3, 3, 3, 4, 5]
unicos = list(set(numeros))
print(unicos)  # [1, 2, 3, 4, 5]

Buscar Mayor y Menor

numeros = [45, 12, 89, 23, 67]
mayor = max(numeros)
menor = min(numeros)
print(f"Mayor: {mayor}, Menor: {menor}")

Conclusión

Las listas son una de las estructuras de datos más versátiles de Python. Dominar sus métodos y operaciones es esencial para cualquier programador Python.