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)
# 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)) # 52. LISTAS (Lists)
Las listas son la estructura de datos más versátil en Python.
Operaciones básicas con listas:
# 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:
# 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:
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:
| Estructura | Característica principal | Uso común |
|---|---|---|
| Array/Lista | Acceso rápido por índice | Almacenar colecciones ordenadas |
| Stack (Pila) | LIFO (último en entrar, primero en salir) | Deshacer operaciones, navegación |
Ejercicio práctico combinado:
# 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
Publicar un comentario