Diccionario Python fromkeys() Método

La función fromkeys() del diccionario de Python devuelve el diccionario con la clave asignada y el valor específico. Crea un nuevo diccionario a partir de la secuencia dada con el valor específico.

Sintaxis: fromkeys(seq, val)

Parámetros: 

  • seq : La secuencia que se va a transformar en un diccionario.
  • val : valores iniciales que deben asignarse a las claves generadas. El valor predeterminado es Ninguno.

Devuelve: un diccionario con claves asignadas a Ninguno si no se proporciona ningún valor; de lo contrario, al valor proporcionado en el campo. 

Ejemplo del método fromkeys() del diccionario de Python

Ejemplo 1: Demostración del funcionamiento de fromkeys() 

Python3

# Python 3 code to demonstrate
# working of fromkeys()
 
# initializing sequence
seq = {'a', 'b', 'c', 'd', 'e'}
 
# using fromkeys() to convert sequence to dict
# initializing with None
res_dict = dict.fromkeys(seq)
 
# Printing created dict
print("The newly created dict with None values : " + str(res_dict))
 
 
# using fromkeys() to convert sequence to dict
# initializing with 1
res_dict2 = dict.fromkeys(seq, 1)
 
# Printing created dict
print("The newly created dict with 1 as value : " + str(res_dict2))

Producción : 

El dictado recién creado con valores Ninguno: {‘d’: Ninguno, ‘a’: Ninguno, ‘b’: Ninguno, ‘c’: Ninguno, ‘e’: Ninguno} 
El dictado recién creado con 1 como valor: {‘ d’: 1, ‘a’: 1, ‘b’: 1, ‘c’: 1, ‘e’: 1}

Comportamiento de fromdict() con objetos mutables como valores

fromdict() también se puede proporcionar con el objeto mutable como valor predeterminado. Pero en este caso, se hace una copia en profundidad del diccionario, es decir, si agregamos valor en la lista original, la adición se realiza en todos los valores de las claves.

Prevención: Ciertas técnicas de comprensión de diccionario se pueden utilizar para crear una nueva lista como valores clave, que no apunten a la lista original como valores de claves.

Ejemplo 2: demostración del comportamiento con objetos mutables

Python3

# Python 3 code to demonstrate
# behaviour with mutable objects
 
# initializing sequence and list
seq = {'a', 'b', 'c', 'd', 'e'}
lis1 = [2, 3]
 
# using fromkeys() to convert sequence to dict
# using conventional method
res_dict = dict.fromkeys(seq, lis1)
 
# Printing created dict
print("The newly created dict with list values : "
      + str(res_dict))
 
# appending to lis1
lis1.append(4)
 
# Printing dict after appending
# Notice that append takes place in all values
print("The dict with list values after appending : "
      + str(res_dict))
 
lis1 = [2, 3]
print('\n')
 
# using fromkeys() to convert sequence to dict
# using dict. comprehension
res_dict2 = {key: list(lis1) for key in seq}
 
# Printing created dict
print("The newly created dict with list values : "
      + str(res_dict2))
 
# appending to lis1
lis1.append(4)
 
# Printing dict after appending
# Notice that append doesnt take place now.
print("The dict with list values after appending (no change) : "
      + str(res_dict2))

Producción:

El dictado recién creado con valores de lista: {‘d’: [2, 3], ‘e’: [2, 3], ‘c’: [2, 3], ‘a’: [2, 3], ‘ b’: [2, 3]} 
El dict con valores de lista después de agregar: {‘d’: [2, 3, 4], ‘e’: [2, 3, 4], ‘c’: [2, 3 , 4], ‘a’: [2, 3, 4], ‘b’: [2, 3, 4]}
El dictado recién creado con valores de lista: {‘d’: [2, 3], ‘e’ : [2, 3], ‘c’: [2, 3], ‘a’: [2, 3], ‘b’: [2, 3]} 
El dict con valores de lista después de agregar (sin cambios): { ‘d’: [2, 3], ‘e’: [2, 3], ‘c’: [2, 3], ‘a’: [2, 3], ‘b’: [2, 3]}

Ejemplo 3: Diccionario de Python fromkeys() valor predeterminado

Python3

x = ('key1', 'key2', 'key3')
y = 0
 
d = dict.fromkeys(x, y)
 
print(d)

Producción:

{'key1': 0, 'key2': 0, 'key3': 0}

Ejemplo 4: Python Dictionary fromkeys() con una lista vacía

Python3

# Python3 code to demonstrate
# to initialize dictionary with list
# using fromkeys()
   
# using fromkeys() to construct
new_dict = dict.fromkeys(range(4), [])
       
# printing result
print ("New dictionary with empty lists as keys : " + str(new_dict))

Producción:

New dictionary with empty lists as keys : {0: [], 1: [], 2: [], 3: []}

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *