Python Collections Defaultdict

Python Collections Defaultdict
Cuando se usa los diccionarios de Python, tratar de acceder o actualizar las claves que faltan en el diccionario pueden aumentar los errores. La ejecución de su código se interrumpirá y se planteará un KeyError. El tipo de Dictición predeterminado es una clase que se asemeja a una clase similar a un diccionario y está disponible en la biblioteca de "colecciones" de Python para manejar y evitar este tipo de situaciones. Obtendremos una explicación exhaustiva de cuál es el Disticto por defecto y cómo difiere del Diccionario estándar de Python. Además, aprenderemos cómo gestionar generalmente los errores faltantes en Python. Finalmente, explicaremos cómo emplear el objeto predeterminado y usarlo para acumular, agrupar y contar los datos.

¿Cómo se manejan las llaves que faltan en los diccionarios de Python??

Los datos se almacenan como pares de valor clave en los diccionarios de Python que son estructuras de datos importantes. Debido a que cada clave en los diccionarios corresponde a un valor, se conocen como matrices asociativas. Podemos recuperar directamente el valor de una llave de un diccionario de Python encerrando la llave en los soportes cuadrados. Examinemos cómo obtener el valor de una llave de un diccionario en Python:

¿Qué pasa si intentamos acceder a la clave de un diccionario que no está presente o no existe??

Como podemos ver, se plantea un KeyError cuando intentamos acceder a una clave de diccionario que no existe. Si el error no se resuelve, nuestro programa se bloqueará. Python ofrece una variedad de opciones para evitar esto, pero el uso del valor predeterminado es la mejor solución para esto. Proporciona un método claro y seguro para proporcionar valores predeterminados especificados para cualquier clave que no exista sin la necesidad de crearlo inicialmente.

¿Qué es default??

Un módulo que proporciona tipos de contenedores especializados se llama colecciones y está disponible en la biblioteca estándar de Python. El tipo de defecto predeterminado es uno de ellos; Es una clase del tipo de dict que se creó especialmente para ayudarlo con las teclas faltantes. El tipo de Python DefaultDict deriva de DICT:

El código dado demuestra que el tipo de Dictición predeterminado en Python es una subclase del dict. Esto implica que tiene muchas de las mismas características que la clase de diccionario al tiempo que modifica y extiende algunas de sus características.

Las siguientes son las modificaciones significativas para la clase de diccionario:

  • DefaultDict anula __missing __ (). Evita la elevación de KeyError cuando falta una llave.
  • Una variable de instancia de escritura llamada ".Se agrega una fábrica predeterminada ”que debe suministrarse durante la instancia.

En general, el valor predeterminado ofrece métodos para dar a los diccionarios con los valores predeterminados en ausencia de una clave. Cualquier llamable aceptable (como int, list, etc.) o ninguno se puede pasar al ".default_factory "llamado. Cada vez que intentamos acceder o cambiar el valor correspondiente con una clave faltante, el valor predeterminado llama automáticamente un llamable si se proporciona.

Una introducción a la clase de defecto de defecto en Python y cómo se diferencia de un diccionario estándar de Python se cubre en esta sección. Ahora, usaremos estos objetos en la siguiente sección para mejorar sus habilidades para usar los diccionarios y manejar los datos faltantes.

¿Cómo podemos crear un Dictición predeterminado??

Esta sección le enseña cómo usar el módulo de colecciones de Python para crear un objeto predeterminado. Simplemente podemos importar el módulo porque este módulo está incluido en la biblioteca estándar de Python. Exploremos cómo podemos crear un Dictición predeterminado:

Aquí, se crea un Dictición predeterminado con el nombre, "Defdicto". Debemos proporcionar un llamable válido para generar el diccionario con éxito. Estos llamados proporcionan métodos para producir muchos tipos de objetos, incluidos números, listas, etc. En lugar de usar la función, debemos usar el llamable.

Al crear el diccionario en este caso, pasamos la lista al ".fábrica predeterminada ”. El Defdicto se usa de la misma manera que un diccionario estándar. Tenga en cuenta que el diccionario asigna el valor predeterminado que obtiene al llamar a la lista () cuando intenta acceder o actualizar el valor que se asigna a una clave que no existe.

No llame al default_factory usando paréntesis en el momento de la inicialización, ya que se debe aprobar un objeto llamable de Python válido.

Manejo de las claves faltantes usando el Dictición de default

Esta sección le enseña cómo usar el valor predeterminado de Python para manejar las claves faltantes. Ya sabemos que debe especificar un tipo de valor predeterminado al crear un nuevo Dictición de valor predeterminado. Esto nos permite administrar los datos faltantes al intentar acceder a una clave que no está presente o no existe. Echemos un vistazo a lo siguiente:

Del ejemplo dado, está claro que tenemos éxito en acceder a una clave que no existía y que se devuelve un valor "0".

Contando los elementos de la lista utilizando el Dictición de default

Contando efectivamente los elementos/objetos en un iterable y devolviendo los recuentos en un diccionario son dos aplicaciones creativas para el objeto de defecto predeterminado. Veamos cómo podemos lograr esto utilizando el diccionario estándar de Python antes de entrar en cómo hacerlo con el objeto predeterminado.

La instrucción if-else se usa en el código dado para tener en cuenta la posibilidad de que la clave falte en nuestro diccionario.

Usando el valor predeterminado, podemos simplificar esto. Incluso si nuestras claves no existían anteriormente, podemos incrementarlas de forma segura y crear un entero como la clave predeterminada.

Aquí, creamos un objeto predeterminado al crear un valor llamado y pasando un valor entero. Como resultado, el valor tiene un valor de 0 si falta una clave. Debido a esto, podemos aumentar de forma segura el valor de una clave en 1 cuando nos encontramos con uno que no existe.

Agrupar los datos con DictIC de

El objeto predeterminado se puede usar para agrupar los datos de acuerdo con otras estructuras de datos. Con esto, iteramos sobre los objetos (como una lista que contiene tuplas, una colección de listas u otro diccionario) para agrupar los datos.

Veamos un ejemplo. Podríamos hacer un diccionario con nuestros cursos como claves y los nombres de los estudiantes inscritos en cada curso como una lista si tenemos un diccionario de nombres de estudiantes y los cursos que están estudiando.

Veamos cómo hacer esto utilizando primero un diccionario estándar de Python. Luego, implementamos esto utilizando el valor predeterminado.

Esto es un poco complicado, como podemos ver. Afortunadamente, el defecto de default simplifica sustancialmente esto. Podemos eliminar la instrucción if-else configurando un valor predeterminado como una lista vacía.

Podemos observar cuánto más simple es comprender este ejemplo porque no tenemos que preocuparnos por el manejo de errores. Cuando falta una clave, nuestro Dictip de valor predeterminado siempre crea una lista vacía. Como resultado, agregar al valor de la clave es simple y no tenemos que preocuparnos por elevar los KeyErrors.

Acumular los datos utilizando el Dictip de predeterminado

Ahora acumulamos los datos utilizando el Dictip de Python. Hay casos en los que debe determinar la suma total de los valores/datos en una colección o secuencia. Supongamos que tiene los datos sobre los elementos que se vendieron en una tienda. Primero almacenemos los datos como una lista de objetos de tupla:

Podemos determinar las ventas totales para cada producto utilizando estos datos. Podemos lograrlo utilizando el Dictición de default con el conjunto de flotación como "Fábrica predeterminada".

Para iterar sobre los elementos, construimos un bucle para. El artículo de ventas por diccionario se calcula utilizando un operador de asignación aumentada (+=). El segundo bucle imprime las ventas después de iterar a través de los elementos de Defdicto.

Conclusión

La información necesaria sobre el objeto predeterminado en Python y cómo puede usarla fue como cubierto en este tutorial. Aprendiste por primera vez sobre el comportamiento de los diccionarios de Python cuando faltan las llaves. Luego, aprendió cómo especificar los valores predeterminados usando el Python Defaultict. Discutimos cómo se pueden manejar las claves faltantes utilizando el Dictición de default. Aprendimos que el objeto predeterminado se puede usar para agregar, acumular y contar datos.