Está en la página 1de 50

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

En este caso solo se estaría guardando el número 8 en esa


variable, es como guardarlo en una caja, pero si ahora quiero
guardar más de un número ¿Cómo hacerlo? Bueno, las listas
actúan también como cajas, sin embargo, no solo aceptan un
solo dato, aceptan muchos más y de diferentes tipos, miremos

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

A cada elemento de la lista le corresponde un índice o un identificador único, iniciando desde el


cero siendo este la primera posición, hasta el número total de elementos que tengamos menos 1.
Si nos damos cuenta, en esta lista tenemos 3 elementos, pero, los índices solo llegan hasta el 2,
esto es, por que como ya mencionábamos, al iniciar a contar desde el cero, teniendo 3 elementos,
los índices solo llegarían hasta el 2, si tengo 4 elementos, los índices llegarían hasta el 3 y así
sucesivamente.
Listas
Con esto claro, para poder acceder al elemento de la lista que yo desee, basta con especificarle en cual índice se
encuentra el dato que yo quiero mostrar o que quiero capturar. Al tener que queremos mostrar la palabra “hola”,
vemos que se encuentra en el índice 2, por ello la manera de hacerlo es la siguiente:
Listas

Lo que se muestra en pantalla es el elemento de la lista que tiene como índice 2,


el cual es “hola”, y así mismo se puede hacer con todos:
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.

Este método nos permite ingresar datos al final de la lista, así:


Extend(<iterable>)

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:

Lo que hace el método es


automáticamente por defecto
ponerlo en el ultimo lugar o la
ultima posición de la lista.
Remove(<obj>)

Este método podría considerarse lo contrario al append, mientras que el append


agrega elementos, este los busca y los elimina de la lista. En el caso de poner un
dato que no se encuentra en la lista saltaría un error.
Remove(<obj>)

Si el elemento no se encuentra pasaría lo siguiente:

Lo cual significa que el


elemento que queremos
eliminar no se encuentra
en lista y por ello sale un
error.
Pop()

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()

O bien así, pasando el índice del dato que quiero eliminar:


Reverse()

Este método nos permite invertir el sentido de la lista, así:


Sort()

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()

Utilizando el reverse = True para ordenar de mayor a


menor tenemos:
Tuplas
Tuplas

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

Si yo a esta tupla le aplico alguno de los métodos anteriormente vistos en listas ya


sea el de agregar (append) o eliminar (pop o remove), me saltaría error ya que
como se mencionaba, las tuplas son inmutables, nunca cambian.

Este error, aunque parezca


aterrador lo que nos indica
es que el objeto tupla no
tiene ningún método
llamado sort, precisamente
porque son inmutables, así
como se definan, así tal
cual se quedan.
Tuplas

A pesar de no poder alterarlas, si podemos visualizar cada elemento


por índices como lo hacíamos con las listas así:
Diccionarios
Diccionarios

Los diccionarios en Python, son una de las


estructuras de datos más organizadas en
cuanto a búsquedas e implementación.
Pensemos como en un diccionario real,
nosotros buscamos la palabra por orden
alfabético y justo al encontrarla podemos
ver su definición. La base principal de
estas estructuras, es su organización llave
(key) : valor (value), es decir, hay una llave
o un identificador y esa llave lleva consigo
un valor correspondiente.
Diccionarios

La manera de crear un diccionario en Python es a través de las llaves o corchetes


así:

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

Si deseo ver cuáles son las llaves de mi diccionario basta con


realizar el siguiente comando y podremos acceder a todas las
llaves del mismo.
Diccionarios

Lo mismo sucede con los valores de cada llave, basta solo con
cambiar el método de keys a values así:
Diccionarios

Ahora bien, si queremos imprimir o mostrar de una manera


más organizada las llaves del diccionario, podemos hacerlo
mediante un for 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

Siguiendo con el mismo análisis y teniendo en cuenta lo anterior, podemos


imprimir tanto los keys como los values en una misma instrucción, así:
Lista de listas
Lista de listas

Al tener claro todo el


funcionamiento de las listas
y su naturaleza en cuanto a
índices, este concepto de
lista de listas es realmente
bastante sencillo, con tener
claro como se organizan los
índices dentro de una lista
es suficiente.
Lista de listas
Una lista de listas como su nombre ya lo menciona es una lista que contiene listas y
dentro de esas listas hay elementos que están dentro ellas mismas, un poco complicado
cierto, pero miremos la siguiente imagen para entender un poco mejor.

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

En el caso de querer acceder a un dato en particular, debemos claramente indicarle en qué


lista pequeña está, y en esa lista pequeña indicarle cual elemento quiero obtener, todo esto se
hace a partir de los índices.
Lista de listas
Tomando como ejemplo la lista anterior, si deseo imprimir el número 2, lo hacemos de la
siguiente manera:

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:

Aquí ¿Qué sucede?, la variable i


es la que controlaría sobre que
lista pequeña me voy a ubicar, y la
variable j me indica, estando en
ella los índices que debo recorrer
para imprimirlos todos, es algo así
como un recorrido doble.
Lista de listas

Lo que sucede con las variables dentro del for es lo siguiente:

Como vemos el valor de i


se mantiene estático
mientras que j cambia y
justo cuando i cambia j se
reinicia en 0
nuevamente.
Referencias bibliográficas

El libro de Python. (s.f.). Operadores. https://ellibrodepython.com/operadores-python


Matthes, E. (2019). Python crash course a hands-on, project-based introduction to
programing. No scratch press.
GRACIAS

También podría gustarte