Estructuras de Datos para Principiantes en Python

 

Estructuras de Datos para Principiantes en Python

¡Hola! Te voy a explicar las estructuras de datos básicas en Python de manera sencilla. Empecemos:

1. ARRAYS (Arreglos)

En Python, los arrays no son tan comunes como en otros lenguajes. Usamos principalmente listas, pero si necesitas arrays puedes usar el módulo array.

Listas (el equivalente más común a arrays)

python
# Crear una lista
mi_lista = [1, 2, 3, 4, 5]
frutas = ["manzana", "banana", "naranja"]

# Acceder a elementos
print(mi_lista[0])  # 1 (primer elemento)
print(frutas[1])    # "banana"

# Modificar elementos
mi_lista[2] = 10
print(mi_lista)  # [1, 2, 10, 4, 5]

# Longitud de la lista
print(len(mi_lista))  # 5

2. LISTAS (Lists)

Las listas son la estructura de datos más versátil en Python.

Operaciones básicas con listas:

python
# Crear lista
numeros = [1, 2, 3, 4, 5]

# Agregar elementos
numeros.append(6)        # Al final: [1, 2, 3, 4, 5, 6]
numeros.insert(0, 0)     # En posición específica: [0, 1, 2, 3, 4, 5, 6]

# Eliminar elementos
numeros.pop()            # Elimina el último: [0, 1, 2, 3, 4, 5]
numeros.remove(3)        # Elimina el valor 3: [0, 1, 2, 4, 5]
del numeros[0]           # Elimina por índice: [1, 2, 4, 5]

# Slicing (rebanadas)
sub_lista = numeros[1:3]  # [2, 4]

# Concatenar listas
lista1 = [1, 2, 3]
lista2 = [4, 5, 6]
combinada = lista1 + lista2  # [1, 2, 3, 4, 5, 6]

3. STACKS (Pilas)

Un stack es una estructura LIFO (Last In, First Out - Último en entrar, primero en salir). En Python podemos usar listas como stacks.

Implementación de stack con lista:

python
# Crear un stack vacío
pila = []

# Operaciones de stack
pila.append(10)  # Push: agregar elemento
pila.append(20)
pila.append(30)

print(pila)  # [10, 20, 30]

# Ver el último elemento sin eliminarlo
ultimo = pila[-1]
print(f"Último elemento: {ultimo}")  # Último elemento: 30

# Pop: eliminar y obtener el último elemento
elemento = pila.pop()
print(f"Elemento eliminado: {elemento}")  # Elemento eliminado: 30
print(pila)  # [10, 20]

# Verificar si está vacío
if not pila:
    print("La pila está vacía")
else:
    print(f"La pila tiene {len(pila)} elementos")

Ejemplo práctico de stack - Revertir una palabra:

python
def revertir_palabra(palabra):
    pila = []
    
    # Agregar cada letra a la pila
    for letra in palabra:
        pila.append(letra)
    
    # Construir palabra revertida
    palabra_revertida = ""
    while pila:
        palabra_revertida += pila.pop()
    
    return palabra_revertida

print(revertir_palabra("Python"))  # "nohtyP"

Resumen comparativo:

EstructuraCaracterística principalUso común
Array/ListaAcceso rápido por índiceAlmacenar colecciones ordenadas
Stack (Pila)LIFO (último en entrar, primero en salir)Deshacer operaciones, navegación

Ejercicio práctico combinado:

python
# Usando lista como stack para verificar paréntesis balanceados
def parentesis_balanceados(expresion):
    pila = []
    
    for caracter in expresion:
        if caracter == '(':
            pila.append(caracter)
        elif caracter == ')':
            if not pila:  # Si la pila está vacía
                return False
            pila.pop()
    
    return len(pila) == 0

# Probemos la función
print(parentesis_balanceados("(2+3)*(4-1)"))  # True
print(parentesis_balanceados("(2+3)*((4-1)")) # False

¡Espero que te haya quedado claro! Las listas son muy flexibles en Python y puedes usarlas tanto como arrays como stacks según lo necesites. ¿Tienes alguna pregunta específica?

Comentarios

Entradas populares de este blog

¿Qué es un Closure?

Calculadora de edad

Funciones en Python: con y sin paréntesis