Post Top Ad

Your Ad Spot

miércoles, 7 de octubre de 2020

Diccionarios de Python

 

Hemos cubierto algunos conceptos introductorios interesantes en Python hasta ahora. Al aprender sobre diccionarios y listas en Python, descubrimos que eran similares. Vale la pena observar más de cerca estos tipos de datos para ver en qué se parecen y qué los hace diferentes también. Los diccionarios optimizan las búsquedas de elementos con las asociaciones clave-valor. Son de alto rendimiento, rápidos y se pueden actualizar y modificar según sea necesario. Poner un poco de código en su editor y probar qué resultados puede obtener es una excelente manera de familiarizarse con su funcionamiento.

Una diferencia clave para entender entre diccionarios y listas es la de desordenado frente a ordenado. Vimos que en las listas de Python, hay un orden específico y definido. Se accedería al primer elemento de cualquier lista dada en Python mediante su clave basada en 0. Por ejemplo, si tuviéramos listas con los nombres de Tesla, Honda y Subaru, el primer valor de cada uno de estos se encontraría interrogando a Tesla [0], Honda [0] y Subaru [0] respectivamente. Muy rápido, si probamos esto como una prueba, podemos ver que este es el caso.

En las listas, el orden de los elementos se utiliza para determinar si dos listas son iguales. Este no es el caso de los diccionarios. En un diccionario, no existe el concepto de ordenar, es simplemente una colección de pares de valores con nombre. Veamos un claro ejemplo de esta diferencia entre listas y diccionarios en código.

Esto es interesante. A pesar de que los elementos del segundo ejemplo, el diccionario está "fuera de servicio", el resultado es que estos dos son iguales. Supongamos que se dedica a la venta de juegos de Lego. Podemos hacer uso de un diccionario para ayudar con este objetivo. Crearemos un punto de partida de conjuntos de lego y su costo en un diccionario llamado legosLuego, podemos hacer uso de un bucle while para pedirle al usuario qué juego de lego está buscando. Proporcionaremos al cliente el precio del juego de Lego que está buscando o lo agregaremos a un pedido pendiente en nuestro diccionario existente. Probémoslo.

Aquí hay una salida de ejemplo de nuestro programa en ejecución.


¿Qué juego de lego quieres ?: (q para salir)
Batman Classic
Batman Classic tiene un costo de 269,99
¿Qué juego de lego quieres ?: (q para salir)
Winter Toy Shop
Winter Toy Shop tiene un costo de 79,99
¿Qué juego de lego quieres ?: ( q para salir)
Brick Bank
Brick Bank tiene un costo de 169,99
¿Qué juego de lego quieres ?: (q para salir)
Heavy Lift Helicopter
Actualmente no tenemos helicóptero de carga pesada, pero podemos hacer un pedido pendiente.
Lo agregaremos a nuestro inventario solicitado.
Base de datos de Lego actualizada.
¿Qué juego de lego quieres ?: (q para salir)
q
{'Batman Classic': '269.99', 'Brick Bank': '169.99', 'Heavy Lift Helicopter': 'pedido pendiente de solicitud del cliente', 'Firehouse Headquarters': '349,99', 'Tienda de juguetes de invierno': '79 .99 '}


Podemos ver que cuando salimos del programa, en realidad mostramos el contenido del diccionario de legos. Cuando solicitamos el juego de lego Heavy Lift Helicopter, no estaba en stock. Sin embargo, agregamos ese artículo a nuestra base de datos como una solicitud del cliente. Este ejemplo solo hace uso de la memoria para demostrar el concepto. Necesitaríamos almacenar estos datos en una base de datos real o en el sistema de archivos si quisiéramos tener una aplicación más útil.


Uso de operadores innot incon diccionarios

Es muy conveniente y al inglés le gusta verificar las claves y valores de un diccionario. Examinemos todos nuestros legos.

Tenga en cuenta que al verificar las teclas, puede usar algo como Brick Bank in legos.keys()sin embargo Brick Bank in legoshace funcionalmente lo mismo, y dado que la sintaxis es más concisa, podemos usar la versión abreviada si queremos. Sin embargo, no hay nada de malo en usar la forma de mano más larga, ya que puede ser útil para mayor claridad.


Comprobación de elementos (), valores () y claves ()

Al recorrer elementos en un diccionario, puede personalizar los tipos de datos que extrae utilizando los métodos items (), values ​​() y keys (). Podemos inspeccionar los tipos que producen estos métodos y también revisar algunos ejemplos que muestran cómo podemos recorrer estos tipos en particular. Curiosamente, cuando se usa la type()función para inspeccionar tipos de datos en Python, la salida se asemeja a una etiqueta HTML con el tipo de datos como un atributo de esa etiqueta.





Creación de un programa de conteo de risas

Podemos hacer uso de una lista, un diccionario, un bucle for y el método setdefault () para crear un programa de conteo de risas. Lo que hace es contar el número de palabras ha, he y ho en una lista y calcula el número de veces que aparece cada palabra en la lista. El método setdefault () es un medio para verificar que exista una clave en el diccionario.

Puede ver que tenemos 2 ho's, 4 ha's y 3 he's. ¡Muy genial!


Hacer que la impresión sea bonita

Hasta ahora, en todos los ejemplos de Python que hemos probado, hemos hecho uso de la función print () simple para ver el resultado. Esto es genial, pero no hay formato para ayudar a que la salida sea más fácil de leer. Para solucionar este problema, podemos importar el módulo pprint para ayudarnos. Modificaremos nuestro programa de conteo de risas para hacer uso de letras bonitas ahora.

En este caso, todo lo que hace es ordenar los valores correctamente, pero ayuda a medida que la salida de sus diccionarios aumenta.


Más ejemplos de diccionarios en Python

Obtener valores de un diccionario y hacer uso del método get ().

Comprobación de la longitud de las tuplas de valores-clave en un diccionario.

Tenga en cuenta que la función len () cuenta cada par clave-valor como un elemento más. ¡No tiene en cuenta la clave y el valor por separado!

Ordenar claves en diccionarios

Sabemos que los diccionarios en Pythons están desordenados. No sabe de antemano en qué orden entrarán las cosas. Si necesita aplicar un orden a las claves, puede hacerlo con el método sorted ().

Este es un buen ejemplo de cómo en el primer resultado, las claves están completamente desordenadas. De hecho, cada vez que ejecute el programa, esas claves volverán en un orden completamente diferente. Al aplicar el método sorted () a nuestras claves, podemos organizar los caracteres en orden alfabético de forma coherente si es necesario.

Usando el método de Python items () para buscar tuplas.

Cómo descomprimir valores en un diccionario

En este fragmento, tomamos nuestro práctico diccionario alfabético y, simultáneamente, recorremos y extraemos cada clave y valor, al mismo tiempo que hacemos uso del método sorted () para mostrar una lista muy agradable de nuestros datos.


Resumen de diccionarios de Python

En este artículo, echamos un vistazo más de cerca a los diccionarios de Python. Por lo general, se implementa como una tabla hash donde un algoritmo hash específico maneja la conversión de lo que normalmente es una clave basada en cadenas en un entero. El número entero se utiliza en segundo plano para encontrar los datos que busca un usuario. Esto se debe a que es más rápido y tiene un rendimiento general superior. Los valores de un diccionario en Python pueden ser cualquier objeto de Python, ya sean objetos integrados o definidos por el usuario. Las claves de un diccionario de Python no tienen este mismo atributo. Una clave no puede tener el mismo valor que cualquier otra clave del diccionario. Si resulta que hay más de una de la misma clave, es la última clave la que tiene prioridad. Las claves también son inmutables o no se pueden cambiar. Los diccionarios también tienen muchas funciones prácticas de Python y métodos como cmp (dict1, dict2), len (dict), str (dict), type (variable), dict.clear (), dict.copy (), dict.fromkeys (), dict.get (key, predeterminado = Ninguno), dict.has_key (clave), dict.items (), dict.keys (), dict.setdefault (clave, predeterminado = Ninguno), dict.update (dict2) y dict.values ​​().



No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas