Estructuras de datos en Python

En la siguiente publicación aprenderemos, mediante ejemplos, los distintos tipos de estructura de datos que podemos usar en Python.

Índice

Introducción

Wikipedia define lo siguiente:

En ciencias de la computación, una estructura de datos es una forma particular de organizar datos en una computadora para que puedan ser utilizados de manera eficiente. Diferentes tipos de estructuras de datos son adecuados para diferentes tipos de aplicaciones, y algunos son altamente especializados para tareas específicas.

Las estructuras de datos son un medio para manejar grandes cantidades de datos de manera eficiente para usos tales como grandes bases de datos y servicios de indización de Internet. Por lo general, las estructuras de datos eficientes son clave para diseñar algoritmos eficientes. Algunos métodos formales de diseño y lenguajes de programación destacan las estructuras de datos, en lugar de los algoritmos, como el factor clave de organización en el diseño de software.

Las estructuras de datos son muy útiles. Nos permiten tener una gran variedad de herramientas para solucionar ciertos tipos de problemas. También nos permiten desarrollar softwares más eficientes. Dependiendo del algoritmo que queramos ejecutar, una u otra estructura de datos nos permitirá calcular todo a mayor velocidad.

Veamos las más usadas en Python:

Listas

Una lista es una colección de elementos en un orden en particular. Podemos hacer una lista que incluya, por ejemplo, letras del alfabeto, dígitos del 0-9, o nombres de los miembros de la familia.

Podemos poner lo que deseamos en una lista, además, no es necesario que los elementos de la lista estén relacionados.

Para una explicación más completa, podemos ir al siguiente enlace.

Ejercicio

  1. Solicitar al usuario que ingrese números, los cuales se guardarán en una lista. Finalizar al ingresar el número 0, el cual no debe guardarse.
  2. A continuación, solicitar al usuario que ingrese un número y, si el número está en la lista, eliminar su primera ocurrencia. Mostrar un mensaje si no es posible eliminar.
  3. Recorrer la lista para imprimir la sumatoria de todos los elementos.
  4. Solicitar al usuario otro número y crear una lista con los elementos de la lista original que sean menores que el número dado. Imprimir esta nueva lista, iterando por ella.
  5. Generar e imprimir una nueva lista que contenga como elementos a tuplas de dos elementos, cada una compuesta por un número de la lista original y la cantidad de veces que aparece en ella. Por ejemplo, si la lista original es [5,16,2,5,57,5,2] la nueva lista contendrá: [(5,3), (16,1), (2,2), (57,1)]

Código

Ejemplos

Tuplas

Las listas funcionan bien para almacenar colecciones de artículos que pueden cambiar a lo largo de la vida de un programa. La capacidad de modificar listas es particularmente importante cuando trabajamos con una lista de usuarios en un sitio web o una lista de personajes en un juego.

Sin embargo, a veces vamos querer crear una lista de elementos que no queremos que cambien. Las tuplas nos permiten hacer exactamente eso. Python se refiere a valores que no pueden cambiar como inmutables, y una lista inmutable se llama tupla.

Para una explicación más completa, podemos ir al siguiente enlace.

Ejercicio

Escribir un programa que permita procesar datos de pasajeros de viaje en una lista de tuplas con la siguiente forma: (nombre, dni, destino). Ejemplo: [(“Manuel Juarez”, 19823451, “Liverpool”), (“Silvana Paredes”, 22709128, “Buenos Aires”), (“Rosa Ortiz”, 15123978, “Glasgow”), (“Luciana Hernandez”, 38981374, “Lisboa”)] Además, en otra lista de tuplas se almacenan los datos de cada ciudad y el país al que pertenecen. Ejemplo: [(“Buenos Aires”,”Argentina”), (“Glasgow”,”Escocia”), (“Lisboa”, “Portugal”), (“Liverpool”,”Inglaterra”), (“Madrid”,”España”)] Hacer un menú iterativo que permita al usuario realizar las siguientes operaciones:

  1. Agregar pasajeros a la lista de viajeros.
  2. Agregar ciudades a la lista de ciudades.
  3. Dado el DNI de un pasajero, ver a qué ciudad viaja.
  4. Dada una ciudad, mostrar la cantidad de pasajeros que viajan a esa ciudad.
  5. Dado el DNI de un pasajero, ver a qué país viaja.
  6. Dado un país, mostrar cuántos pasajeros viajan a ese país.
  7. Salir del programa.

Código

Ejemplos

Conjuntos

La principal característica de este tipo de estructura de datos es que es una colección cuyos elementos son únicos y no guardan ningún orden.

Los principales uso de los conjuntos son conocer si un elemento pertenece o no a una colección y eliminar duplicados de una lista, tupla, string, …

Este tipo de estructuras implementa las típicas operaciones matemáticas sobre conjuntos: intersección, unión, diferencia, …

Ejercicio

Solicitar al usuario que ingrese los nombres de pila de los alumnos de nivel primario de una escuela, finalizando al ingresar “x”. A continuación, solicitar que ingrese los nombres de los alumnos de nivel secundario, finalizando al ingresar “x”.

  1. Informar los nombres de todos los alumnos de nivel primario y los de nivel secundario, sin repeticiones.
  2. Informar qué nombres se repiten entre los alumnos de nivel primario y secundario.
  3. Informar qué nombres de nivel primario no se repiten en los de nivel secundario.

Código

Ejemplos

Diccionario

Un diccionario en Python es una colección de pares clave-valor. Cada clave está conectada a un valor y puede usar una clave para acceder al valor asociado con esa clave.
El valor de una clave puede ser un número, una cadena, una lista o incluso otro diccionario.
De hecho, puede utilizar cualquier objeto que pueda crear en Python como valor en un diccionario.

Ejercicio

Escribir un programa que procese strings ingresados por el usuario. La lectura finaliza cuando se hayan procesado 50 strings. Al finalizar, informar la cantidad total de ocurrencias de cada carácter, en todos los strings ingresados. Ejemplo: “r”:5, “%”:3, “a”:8, “9”:1.

Código

Ejemplos

close

¡No te pierdas mis últimas publicaciones!

¡No te enviaré spam!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *