Estructuras de Datos
Estructuras de Datos
Estructuras de Datos
Introducción
Introducción
En el mundo de las tecnologías y el desarrollo,
muchas veces necesitamos guardar información en
algún lado, así como para guardar varias piezas de
ropa necesitamos un closet, para la información o
datos que estemos trabajando necesitamos esa
especie de closet o cajón para guardarlos. Es en ese
momento es donde entran en juego las estructuras
de datos, estas como su nombre lo indican, nos
permiten guardar información de manera que se
encuentre organizada en algún tipo de espacio. Lo
mágico de estas estructuras es que puedes guardar
así sea un dato al igual que millones de datos, cosa
que con las variables no se puede hacer. En
resumen, estas nos permiten tener de manera más
organizada la información sin necesidad de crear
miles de variables para cada dato, optimizando la
memoria y permitiendo que nuestros programas se
vean más organizados y limpios.
This Photo by Unknown Author is licensed under CC BY-NC-ND
Listas
Listas
Las listas dentro de lo que concierne a las estructuras de datos, son unas de las más versátiles, ya que nos
permiten almacenar diferentes tipos de datos en un solo lugar y acceder a ellos de manera sencilla. Para
entender mejor la naturaleza de las listas tomemos como ejemplo lo que se hacía con las variables, si yo tengo
el numero 8 y lo quiero guardar para mostrarlo nuevamente, lo guardo en una variable que se llame número y
listo sencillo como si tuviera una caja, de esta forma:
número = 8
8
Listas
8
el siguiente ejemplo para entender la definición de una lista:
“Hola”
2
1 Lista = [1, 2, "Hola"]
Listas
“Hola”
2
1
Aquí lo que sucede es que lista es una variable, pero de tipo “lista”, ya no
solo tenemos un solo número, sino que tenemos un conjunto de números y
otros datos agrupados en una misma variable ¡Sorprendente verdad!
Listas
Ahora bien, si ya tenemos todos los números agrupados en una sola estructura, ¿Cómo
podemos acceder a alguno en particular? Digamos que quiero imprimir en pantalla solo la
palabra “hola” y no la lista completa, para ello existen los llamados índices de la lista, los
cuales funcionan de la siguiente manera:
Listas
No obstante, si en nuestra lista hay 50 elementos, no vamos a escribir 50 veces el comando para
acceder a los 50 datos de la lista, para ello hacemos uso de lo aprendido en las instrucciones
cíclicas. Implementando un ciclo for, podemos simplemente indicar con pocas líneas de código lo
que queremos, que precisamente es mostrar los 50 elementos de la lista, en este caso son solo 3.
Así:
Listas
Lo que aquí tenemos es que como ya sabemos, el valor de i va ir cambiando a medida que se ejecuta el
ciclo, i tomaría los valores de todos los índices dentro de la lista desde el 0 hasta el 49, por que como ya
comentábamos, los índices siempre van desde el cero hasta el tamaño de la lista menos uno, que es
precisamente lo que hacemos con el método len(), el cual nos arroja la longitud de la lista, es decir,
cuantos datos tiene, en este caso es 50, pero, al conocer la naturaleza del for, es claro que nunca tomará
el valor del límite superior sino uno antes, ósea, 49, que sería el ultimo índice dentro de la lista o el
ultimo valor de la lista. Con esto pudimos ver que utilizando lo aprendido acerca de ciclos, es posible
implementarlo en listas para así hacer más eficiente nuestra manera de programar.
Métodos de listas
Métodos de listas
Para poder interactuar con las listas, ya sea agregar elementos, quitar elementos,
limpiar completamente la lista, y entre otras cosas, existen distintos métodos que
nos ayudan realizar todo esto de una forma más sencilla. Los principales son:
append, extend, insert, remove, pop, reverse y sort .
Append(<obj>)
El apartado <obj> hace referencia a que recibe como entrada el valor que deseas ingresar a la lista.
El apartado <iterable> hace referencia a que lo que toma como entrada es una lista o algún tipo de dato iterable,
es decir, que tiene posiciones o índices tal cual lo veíamos anteriormente.
Este método nos permite añadir una lista a la lista inicial pero no como una lista sino como nuevos elementos de
la lista inicial, así:
Insert(<index>, <obj>)
El apartado <index> hace referencia al índice donde se desea ingresar ese objeto o dato dentro de la lista, y es
precisamente lo que nos permite hacer este método, añadir un elemento en una posición específica, así:
Insert(<index>, <obj>)
Si llegásemos a digitar un índice que no sea correcto, es decir que esté fuera del
rango por ejemplo:
Este método nos permite eliminar por defecto el último valor de la lista, sin embargo,
al proporcionarle el índice, eliminaría el dato que se encuentre en ese índice dentro
de la lista, así:
Pop()
Este método nos permite ordenar la lista por defecto de menor a mayor, en el caso de que queramos hacerlo
de mayor a menor debemos incluir en los paréntesis reverse = True, así:
Sort()
Las tuplas son muy parecidas, y hasta casi iguales a las listas, en lo único que difieren es que estas son
estructuras de datos inmutables, es decir, una vez sean definidas, no se pueden alterar o cambiar ya
que como se indica, no son mutables, no cambian, son fijas.
La manera de definirlas es
igual a las listas solo que en
vez de corchetes se utilizan
paréntesis, así:
Tuplas
diccionario = {"nombre":"carlos"}
En este ejemplo la llave sería nombre, y el valor sería el nombre como tal,
que es Carlos.
Diccionarios
Así como este ejemplo, podemos tener muchos más keys y muchos más
values para esas keys, todos separados por comas así:
diccionario = {
"nombre":"carlos",
"Edad":23,
"Cédula":"1009876352",
}
Diccionarios
Si yo deseo acceder al valor de la llave Edad, basta con especificar esa llave
a la que queremos conocerle su valor, así:
Diccionarios
Lo mismo sucede con los valores de cada llave, basta solo con
cambiar el método de keys a values así:
Diccionarios
Utilizando la naturaleza iterativa del for lo que estamos haciendo aquí es, por cada llave en que
esté en el diccionario, imprima todas las que estén. Esto pasa porque el for está repitiéndose
por cada llave que encuentre dentro del diccionario y así de una mejor forma podemos acceder
a cada una de ellas. Lo mismo sucede con los valores, lo único que cambia es la notación:
Diccionarios
Como podemos ver es la misma estructura de una lista, solo que dentro de ella hay dos listas
y esas dos listas pequeñas contienen en sí dos elementos que en este caso son números.
Lista de listas
Filas
La mejor manera de entenderlo es pensar
en una hoja de Excel donde hay filas y
columnas, aquí las filas serían las listas Columnas
pequeñas y las columnas el primer y
segundo número de cada lista, si lo
1 2
organizamos como una matriz es decir
como si fuera una tabla se vería algo así: 3 4
Tal cual mencionamos, la primera fila hace referencia a la primera lista, y la segunda fila hace referencia
a la segunda lista.
Lista de listas
Tal cual pasaba en las listas, acá en las listas de listas debemos indicarle primero en qué lista me
debo ubicar que claramente es la lista que está en la posición 0, y estando en esa lista cual es la
posición del elemento que deseo ver, claramente es la posición 1 que le corresponde al número 2.
Lista de listas
Ahora bien, si queremos imprimir todos los elementos de la lista de listas debemos realizarlo a
partir de no uno sino dos ciclos for, ya que necesitamos recorrer la lista grande o principal, y
además, las listas internas o más pequeñas. Dicho proceso se realiza de la siguiente manera: