2022/07/24

S1 Estructura de Datos Python

ESTRUCTURA DE DATOS EN PYTHON

Para ver las estructuras de datos disponibles en Python.

Estas van a permitir manipular los datos y administrarlos de una manera fácil para  utilizarlo en el campo de data science.

se va a comenzar.

Para ello se va a utilizar otra vez la aplicación Jupyter, ya sabemos cómo abrirla, se va a dar inicio y empezamos a escribir Jupyter.

Esto va a abrir la aplicación, damos enter, esperamos que cargue, y va a abrir el navegador.

Ahora, hay que ir a los cuaderJupyter que están disponibles en el curso.

En mi caso yo los tengo en el escritor, entonces voy a ir a esa ruta, presiono Desktop y cuadernos, y se va a abrir el archivo llamado "estructuras de datos".

Hemos estado revisando lo que son las listas.

Ahora se va a introducir otra nueva estructura que son las tuplas.

Las tuplas son una estructura muy similar a las listas.

La diferencia entre listas y tuplas es que una vez que creas una tupla ya no se pueden estar manipulando los elementos.

Así se quedó la tupla, tal como la creaste.

Una lista ya sabemos que se construye a través de corchetes cuadrados.

se tiene el 1, 2, 3 como un string y la variable true, y si pedimos el tipo de dato da una lista.

Las tuplas de una forma muy similar se construyen con paréntesis, y los elementos intervan separados por comas.

Entonces, la se puede construir así.

se tiene els mismos elementos de la lista y los guardamos en una variable llamada tupla.

Si la imprime le imprime sin ningún problema, y si imprime el tipo de dato dice que es una tupla.

En realidad Python no necesita los paréntesis, los paréntesis son solo por claridad para cuando alguien lea el código pueda visualizar rápidamente que es una tupla.

El constructor realmente de una tupla son las comas.

Entonces,  le se puede dar una tupla sin paréntesis, 1, 2, 3, true y lo imprime, y se escribe el tipo, y lo maneja sin ningún problema.

Ahora, les mencionaba que la diferencia entre tuplas y listas es que las tuplas no se pueden modificar una vez creadas.

Esta propiedad se llama que son inmutables.

Por ejemplo, si tratamos de cambiar el elemento 0 de la tupla va a marcar un errorm y el error dice "objeto tupla no soporta la asignación de elementos".

Tampoco se puede agregar elementos nuevos como lo hacíamos en las listas.

dice "tupla no tiene el atributo append" o anexar.

Ahora, pero ¿cuál es el beneficio de utilizar tuplas comparados con listas? Bueno, lo que va ayudar a la hora de construir tuplas es que como  se quiere que sea estable y no cambie del tamaño la se puede utilizar como retorno de las funciones.

Por ejemplo, imaginemos que se tiene una función "obtener coordenadas".

Sólo necesitamos dos valores: latitud y longitud.

Entonces, no necesitamos regresar a una lista que va a ser manipulable si solamente se tiene esos dos valores, va a ser estático, así como ésta.

Entonces, se puede utilizar una función donde reciba latitud, longitud y lo retorne común como una tupla.

Recordemos que no es necesario utilizar paréntesis pero es recomendable.

Y si mandamos a llamar esta función simplemente va a retornar la tupla en un estado estable, no va a cambiar.

Entonces, ese es el principal beneficio utilizar tuplas contra listas.

Otra estructura de datos muy utilizada son los diccionarios.

Los diccionarios relacionan una llave con un valor fijo.

La manera más común de relacionar los diccionarios con la vida real es literalmente un diccionario, un libro, donde cuando tú buscas una palabra y hace referencia a una definición.

De forma similar aquí se tiene un ejemplo.

se tiene el diccionario "d".

El diccionario se construye a partir de llaves.

Entonces, todos los elementos que van a estar dentro de las llaves van a tener una llave y un valor.

En este caso conseguimos un diccionario de capitales, entonces se tiene el estado y la capital.

Entonces,  lo se puede ejecutar y simplemente lo guardo.

Y ahora, ¿qué tal si se quiere conocer la capital de Tamaulipas? se utiliza de "d", y entre corchetes se escribe el valor que se quiere, sería la llave, y va a retornar la capital, que sería el valor.

Ahora, las listas y tuplas tienen un orden definido.

Accedemos al primer elemento con el índice 0, al segundo con el índice 1 y así sucesivamente.

Los diccionarios no.

Se accede a través de la palabra clave o de la llave.

Por ejemplo, si se utiliza el d[0] en su índice 0 va a marca un error, y dice error de llave, que no existe, ¿por qué? porque en el diccionario nunca definimos la llave 0.

se tiene Aguascalientes, Baja California, pero no hay 0.

Bueno, pero en el diccionario también se puede agregar valores a diferencia de las tuplas.

Qué tal si, supongamos que Texas se une al territorio mexicano, y se quiere agregarlo.

Bueno, simplemente se utiliza d con la llave Texas y le decimos que es igual a Austin.

Y eso lo agrego a el diccionario, lo se puede comprobar imprimiendo el diccionario completo.

se puede ver el diccionario, y hasta el final se encuentra Texas.

Ahora, supongamos que fue un error y Texas nunca se unió al territorio mexicano, pues lo se puede eliminar.

Simplemente se utiliza "del", la función "del" que está incluido dentro de Python, y dentro ponemos el elemento o la llave a la cual se quiere eliminar, haciendo referencia siempre al diccionario.

Y si lo intentamos imprimir ahora va a marcar un error, ¿por qué? Porque Texas no está incluido en el diccionario.

Lo se puede comprobar imprimiendo el valor de d, y aquí está, ya no está dentro del diccionario.

Ahora, recordamos que esto es...

Texas fue incrustado dentro el diccionario pero no significa que siempre va a estar al último.

El diccionario es un conjunto de datos que no tiene orden.

Entonces, no se guían de la orden que muestra aquí porque puede esta cambiar después.

También se puede obtener una lista de todas las llaves, por ejemplo, si se utiliza d.keys() devuelve una lista con todas las llaves que serían todos los estados.

En el caso en particular y si se utiliza d.values va a retornar lo contrario, todas las definiciones, es decir, todas las capitales.

Esa es la funcionalidad básica de un diccionario.

También se va a volver a revisar las listas.

se va a entrar un poquito en detalle.

se tiene una lista que contiene los elementos 1, 4, 3, 4, 8 y 9.

Si se dan cuenta el 4 es un elemento repetido, se pueden repetir sin ningún problema.

Y se puede utilizar el método append para agregar un nuevo valor, entonces lo ejecutamos y se tiene 1, 4, 3, 4, 8, 9, y se anexó el valor 10 que le hemos dicho, sin ningún problema.

Además las listas tienen el método count.

Este va a contar el número de veces que se repite cierto valor.

Por ejemplo, si se utiliza count(4)  ya sabemos que se repite dos veces.

Entonces, si lo ejecutamos precisamente dice eso.

Esto va a servir mucho a la hora de que se quiere describir la información, poder contar los valores repetidos.

Ahora ya sabemos agregar elementos individualmente.

Hemos utilizado el método append, pero ¿qué pasa si se quiere unir múltiples elementos al mismo tiempo? Bueno, para eso existe la función extend, que como el nombre lo dice, extiende la lista con otra lista nueva.

Entonces, si se utiliza esta función  teníamos que la variable "l" contenía 1, 4, 3, 4, 8, 9 y 10, seleccionamos con 3, 4 y 6, pega esos elementos inmediatamente después.

También se puede hacer inserciones en valores específicos, en lugares específicos de la lista.

se tiene el insert, que va a insertar el valor 5 en el índice 1, entonces se tiene el índice 0, el índice 1 y aquí inserto el número 5 y continúa con el resto de lista como si nada hubiera pasado.

Además, se puede utilizar el método pop para eliminar el último valor, y este método pop retorna el elemento borrado.

Entonces,  se puede llamarle, imprimir el pop y va a retornar el 6, ¿por qué? porque era el último elemento y la lista resultante es la lista sin el número 6.

También se puede eliminar elementos específicos.

Si le decimos l.remove(9) va a buscar en la lista el elemento 9, no el índice 9, el elemento 9.

y lo hace sin ningún problema.

También otra función muy útil es cuando se quiere utilizar la lista pero en orden contrario.

Ya sabemos que se puede utilizar un for que vaya desde el último hasta el primero pero también existe la función reverse que invierte directamente la lista completa.

el orden era 1, 5, 4, 3, 4, 8, 10, 3, 4 y el orden contrario es 4, 3, 10, 8...

y continuamos.

Entonces, lo hace sin ningún problema.

Pero esta es una lista que no está ordenada, se va a ordenarla y esto se hace a través del método sort.

Entonces al ejecutarlo da todos los elementos que estaban contenidos pero ya ordenados.

Pero ¿qué pasa si se quiere hacer un orden inverso? Bueno, simplemente le pasamos el parámetro reverse igual a true y si lo ejecutamos lo hace correctamente.

No hay comentarios:

Publicar un comentario

S4 Cierre

Cierre Semana 4 Muchos de los problemas actuales a los que se enfrenta un científico de datos involucran el manejo de grandes cantidades de ...