Predeterminado en Python

El diccionario en Python es una colección desordenada de valores de datos que se utilizan para almacenar valores de datos como un mapa. A diferencia de otros tipos de datos que contienen solo un valor único como elemento, el diccionario contiene un par clave-valor. En Diccionario, la clave debe ser única e inmutable. Esto significa que una tupla de Python puede ser una clave, mientras que una lista de Python no. Se puede crear un diccionario colocando una secuencia de elementos entre llaves {}, separados por ‘comas’.

Ejemplo:

Python3

# Python program to demonstrate
# dictionary
  
  
Dict = {1: 'Geeks', 2: 'For', 3: 'Geeks'} 
print("Dictionary:") 
print(Dict)
print(Dict[1])
  
# Uncommenting this print(Dict[4])
# will raise a KeyError as the
# 4 is not present in the dictionary

Producción:

Dictionary:
{1: 'Geeks', 2: 'For', 3: 'Geeks'}
Geeks
Traceback (most recent call last):
  File "/home/1ca83108cc81344dc7137900693ced08.py", line 11, in 
    print(Dict[4])
KeyError: 4

A veces, cuando se genera KeyError, puede convertirse en un problema. Para superar esto, Python presenta otro contenedor similar a un diccionario conocido como Defaultdict que está presente dentro del módulo de colecciones.
Nota: Para obtener más información, consulte Diccionario de Python .
 

DefaultDict

Defaultdict es un contenedor como los diccionarios presentes en las colecciones de módulos . Defaultdict es una subclase de la clase de diccionario que devuelve un objeto similar a un diccionario. La funcionalidad de ambos diccionarios y defaultdict es casi la misma excepto por el hecho de que defaultdict nunca genera un KeyError. Proporciona un valor predeterminado para la clave que no existe.

Sintaxis: defaultdict(default_factory)
Parámetros:  

  • default_factory: una función que devuelve el valor predeterminado para el diccionario definido. Si este argumento está ausente, el diccionario genera un KeyError.

Ejemplo:

Python3

# Python program to demonstrate
# defaultdict
  
  
from collections import defaultdict
  
  
# Function to return a default
# values for keys that is not
# present
def def_value():
    return "Not Present"
      
# Defining the dict
d = defaultdict(def_value)
d["a"] = 1
d["b"] = 2
  
print(d["a"])
print(d["b"])
print(d["c"])

Producción:

1
2
Not Present 

Funcionamiento interno de defaultdict

Defaultdict agrega una variable de instancia de escritura y un método además de las operaciones de diccionario estándar. La variable de instancia es el parámetro default_factory y el método proporcionado es __missing__.

Python-Foundation-Course

  • Default_factory: Es una función que devuelve el valor predeterminado para el diccionario definido. Si este argumento está ausente, el diccionario genera un KeyError.
    Ejemplo:

Python3

# Python program to demonstrate
# default_factory argument of 
# defaultdict
  
  
from collections import defaultdict
  
      
# Defining the dict and passing 
# lambda as default_factory argument
d = defaultdict(lambda: "Not Present")
d["a"] = 1
d["b"] = 2
  
print(d["a"])
print(d["b"])
print(d["c"])

Producción:

1
2
Not Present
  • __missing__(): esta función se utiliza para proporcionar el valor predeterminado para el diccionario. Esta función toma default_factory como argumento y si este argumento es Ninguno, se genera un KeyError; de lo contrario, proporciona un valor predeterminado para la clave dada. Este método es llamado básicamente por el método __getitem__() de la clase dict cuando no se encuentra la clave solicitada. __getitem__() aumenta o devuelve el valor devuelto por __missing__(). método.
    Ejemplo:

Python3

# Python program to demonstrate
# defaultdict
  
  
from collections import defaultdict
  
      
# Defining the dict
d = defaultdict(lambda: "Not Present")
d["a"] = 1
d["b"] = 2
  
# Provides the default value 
# for the key
print(d.__missing__('a'))
print(d.__missing__('d'))

Producción:

Not Present
Not Present 

Uso de List como default_factory

Cuando la clase de lista se pasa como el argumento fábrica_predeterminada, se crea un dictado predeterminado con los valores que son lista.
Ejemplo:

Python3

# Python program to demonstrate
# defaultdict
  
  
from collections import defaultdict
  
  
# Defining a dict
d = defaultdict(list)
  
for i in range(5):
    d[i].append(i)
      
print("Dictionary with values as list:")
print(d)

Producción:

Dictionary with values as list:
defaultdict(<class 'list'>, {0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})

Usando int como default_factory

Cuando la clase int se pasa como argumento default_factory, se crea un dictado predeterminado con el valor predeterminado cero.
Ejemplo:

Python3

# Python program to demonstrate
# defaultdict
   
   
from collections import defaultdict
   
   
# Defining the dict
d = defaultdict(int)
   
L = [1, 2, 3, 4, 2, 4, 1, 2]
   
# Iterate through the list
# for keeping the count
for i in L:
       
    # The default value is 0
    # so there is no need to 
    # enter the key first
    d[i] += 1
       
print(d)

Producción:

defaultdict(<class 'int'>, {1: 2, 2: 3, 3: 1, 4: 2})

Publicación traducida automáticamente

Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *