¡Descarga estructura de datos en sistemas de informacion y más Monografías, Ensayos en PDF de Tecnología de la Información solo en Docsity!
- Estructuras de datos. Las estructuras de datos en Python son formas de organizar y almacenar información para facilitar su manipulación y acceso. Existen varias estructuras de datos fundamentales en Python, cada una con sus propias características y usos. Aquí te dejo un resumen de las más importantes: 1️ ⃣ Listas( list ) Son colecciones ordenadas y mutables de elementos. Puedes almacenar cualquier tipo de datos dentro de una lista y modificarla después de su creación. numeros = [1, 2, 3, 4, 5] numeros.append(6) # Agrega un elemento al final print(numeros) # Salida: [1, 2, 3, 4, 5, 6] 2️ ⃣ Tuplas( tuple ) Son similares a las listas, pero son inmutables, lo que significa que no pueden modificarse después de su creación. coordenadas = (10, 20) print(coordenadas[0]) # Salida: 10 3️ ⃣ Diccionarios( dict ) Almacenan datos en pares clave-valor, permitiendo búsquedas rápidas de información. persona = {"nombre": "Emma", "edad": 22} print(persona["nombre"]) # Salida: Emma 4️ ⃣ Conjuntos( set ) Son colecciones de elementos únicos, ideales para evitar duplicados. frutas = {"manzana", "pera", "uva"} frutas.add("naranja") # Agrega un nuevo elemento print(frutas) # Salida: {'manzana', 'pera', 'uva', 'naranja'} 5️ ⃣ ColasyPilas Python no tiene estructuras de colas y pilas explícitas, pero se pueden implementar con listas o con la librería collections. from collections import deque cola = deque(["A", "B", "C"]) cola.append("D") # Agregar al final
print(cola.popleft()) # Elimina el primer elemento (FIFO)
- usar listas como pilas. ¡Buena pregunta, Emma! En Python, puedes usar listas como pilas porque las listas permiten operaciones eficientes en su extremo final. Una pila sigue el principio LIFO ( Last In, First Out ), lo que significa que el último elemento agregado es el primero en salir. 📌 Operacionesdeunapilaconlistas Python proporciona dos métodos clave para manejar pilas con listas: append(): Agrega un elemento al final de la lista (Push). pop(): Elimina y devuelve el último elemento de la lista (Pop). Aquí tienes un ejemplo práctico:
Crear una pila vacía
pila = []
Agregar elementos (Push)
pila.append("A") pila.append("B") pila.append("C") print("Pila después de agregar elementos:", pila)
Sacar elementos (Pop)
ultimo_elemento = pila.pop() print("Elemento eliminado:", ultimo_elemento) print("Pila después de eliminar un elemento:", pila) 📌 Usando collections.deque paramayoreficiencia Las listas son eficientes para pilas pequeñas, pero cuando se trabaja con grandes volúmenes de datos, es mejor usar collections.deque, ya que tiene una mejor eficiencia en la eliminación de elementos. from collections import deque
Crear una pila con deque
pila = deque()
Agregar elementos
pila.append("X") pila.append("Y") pila.append("Z") print("Pila con deque:", pila)
cola.append("Y") cola.append("Z") print("Cola con deque:", cola)
Eliminar el primer elemento
cola.popleft() print("Cola después de popleft:", cola) 🔹 Conclusión: Para listas pequeñas, usar pop(0) es suficiente, pero si manejas grandes volúmenes de datos, deque es la mejor opción.
- comprensión de listas La comprensióndelistas en Python es una forma concisa y eficiente de crear listas a partir de iterables, como otras listas, cadenas o rangos. En lugar de usar bucles for tradicionales, puedes generar listas en una sola línea de código. 📌 Sintaxisbásica nueva_lista = [expresión for elemento in iterable if condición] expresión: Lo que se agrega a la lista. elemento: Cada valor en el iterable. iterable: La fuente de datos (lista, rango, etc.). condición (opcional) : Filtra elementos. 📌 Ejemplo1️ :Crearunalistadecuadrados cuadrados = [x**2 for x in range(1, 6)] print(cuadrados) # Salida: [1, 4, 9, 16, 25] 📌 Ejemplo2️ :Filtrarvalores pares = [x for x in range(10) if x % 2 == 0] print(pares) # Salida: [0, 2, 4, 6, 8] 📌 Ejemplo3️ :Transformarcadenas palabras = ["Hola", "Python", "Mundo"] mayusculas = [p.upper() for p in palabras] print(mayusculas) # Salida: ['HOLA', 'PYTHON', 'MUNDO'] 📌 Ventajas
✔ Más compacto que los bucles for. ✔ Más eficiente en términos de rendimiento. ✔ Fácil de leer cuando se usa correctamente.
- listas por comprensión anidadas. Las listasporcomprensiónanidadas en Python son una técnica avanzada para manejar estructuras de datos con múltiples niveles, como listas dentro de listas. Se utilizan cuando necesitas procesar elementos de una lista bidimensional o crear listas más complejas en una sola línea de código. 📌 Ejemplobásico:Crearunamatriz3️ x3️ matriz = [[j for j in range(3)] for i in range(3)] print(matriz) 🔹 Salida: [[0, 1, 2], [0, 1, 2], [0, 1, 2]] Aquí, la lista externa crea tres filas, y la lista interna genera los valores de cada fila. 📌 Ejemplo2️ :Filtrarvaloresenunamatriz matriz = [[j for j in range(5) if j % 2 == 0] for i in range(3)] print(matriz) 🔹 Salida: [[0, 2, 4], [0, 2, 4], [0, 2, 4]] Aquí, la condición if j % 2 == 0 hace que solo se guarden los números pares en cada fila. 📌 Cuándousarlas ✔ Cuando necesitas crear matrices o listas multidimensionales. ✔ Para transformar estructuras de datos anidadas de manera eficiente. ✔ Para aplicar condiciones y modificaciones a cada elemento dentro de una lista anidada.
- tuplas y secuencias.
- conjuntos. Los conjuntos( set ) en Python son una estructura de datos que almacena elementos únicos ydesordenados. Son muy útiles para eliminar duplicados y realizar operaciones matemáticas como unión, intersección y diferencia. 📌 Característicasdelosconjuntos ✔ No permiten elementos duplicados. ✔ Son desordenados, lo que significa que no tienen un índice fijo. ✔ Se pueden modificar agregando o eliminando elementos. ✔ Permiten operaciones matemáticas como intersección y diferencia. 📌 Cómocrearunconjunto frutas = {"manzana", "pera", "uva", "manzana"} # No se repiten los valores print(frutas) # Salida: {'manzana', 'pera', 'uva'} 📌 Operacionesútilesenconjuntos
Crear dos conjuntos
A = {1, 2, 3, 4, 5} B = {3, 4, 5, 6, 7}
Unión (elementos de ambos conjuntos)
print(A | B) # Salida: {1, 2, 3, 4, 5, 6, 7}
Intersección (elementos en común)
print(A & B) # Salida: {3, 4, 5}
Diferencia (elementos en A pero no en B)
print(A - B) # Salida: {1, 2}
Diferencia simétrica (elementos que están en A o B, pero no en ambos)
print(A ^ B) # Salida: {1, 2, 6, 7} 📌 Agregaryeliminarelementos mi_set = {10, 20, 30} mi_set.add(40) # Agregar un elemento mi_set.remove(20) # Eliminar un elemento print(mi_set) # Salida: {10, 30, 40} 🔹 Conclusión: Los conjuntos son ideales para eliminar duplicados y realizar operaciones matemáticas eficientes.
- diccionarios.
Los diccionarios( dict ) en Python son estructuras de datos que almacenan información en paresclave-valor. Son muy útiles para buscar datos rápidamente, ya que permiten acceder a valores mediante claves en lugar de posiciones numéricas como en listas y tuplas. 📌 Sintaxisbásicadeundiccionario persona = { "nombre": "Emma", "edad": 22, "ciudad": "Maturín" } ✔ Cada clave está asociada a un valor. ✔ Los valores pueden ser de cualquier tipo de dato (números, listas, tuplas, otros diccionarios). ✔ Son mutables, lo que significa que se pueden modificar después de su creación. 📌 Cómoaccederavalores print(persona["nombre"]) # Salida: Emma print(persona.get("edad")) # Salida: 22 🔹 El método .get() es útil porque evitaerrores si la clave no existe. 📌 Agregarymodificarvalores persona["profesion"] = "Ingeniera" # Agregar nueva clave-valor persona["edad"] = 23 # Modificar valor existente print(persona) 📌 Eliminarclaves del persona["ciudad"] # Eliminar una clave print(persona) También puedes usar .pop() para obtener y eliminar un elemento: edad = persona.pop("edad") print(edad) # Salida: 23