En este artículo, cubriremos cómo agregar una nueva clave a un diccionario en Python . Usaremos 7 métodos diferentes para agregar nuevas claves a un diccionario.
El diccionario en Python es una colección desordenada de valores de datos, que se utiliza para almacenar valores de datos como un mapa, a diferencia de otros tipos de datos que contienen solo un valor único como elemento, un diccionario contiene un par clave: valor. El valor-clave se proporciona en el diccionario para hacerlo más optimizado. Cada par clave-valor en un Diccionario está separado por dos puntos: mientras que cada clave está separada por una ‘coma’. Las claves de un Diccionario deben ser únicas y de tipos de datos inmutables como Strings, Integers y tuplas, pero los valores de las claves pueden repetirse y ser de cualquier tipo. Veamos cómo podemos agregar nuevas claves a un diccionario usando diferentes formas de un diccionario.
Crea un diccionario primero
Python3
# Let's create a dictionary, the functional way # Create your dictionary class class my_dictionary(dict): # __init__ function def __init__(self): self = dict() # Function to add key:value def add(self, key, value): self[key] = value # Main Function dict_obj = my_dictionary() dict_obj.add(1, 'Geeks') dict_obj.add(2, 'forGeeks') print(dict_obj)
Producción:
{1: 'Geeks', 2: 'forGeeks'}
Método 1: agregue nuevas claves utilizando la notación de subíndices
Este método creará un nuevo par clave\valor en un diccionario asignando un valor a esa clave. Si la clave no existe, se agregará y apuntará a ese valor. Si la clave existe, se sobrescribirá el valor actual al que apunta.
Python3
dict = {'key1': 'geeks', 'key2': 'fill_me'} print("Current Dict is: " , dict) # using the subscript notation # Dictionary_Name[New_Key_Name] = New_Key_Value dict['key2'] = 'for' dict['key3'] = 'geeks' print("Updated Dict is:" , dict)
Producción:
Current Dict is: {'key1': 'geeks', 'key2': 'fill_me'} Updated Dict is: {'key3': 'geeks', 'key1': 'geeks', 'key2': 'for'}
Método 2: agregue nuevas claves usando el método de actualización()
Cuando tenemos que actualizar/agregar muchas claves/valores al diccionario, el método update() es adecuado. El método update() inserta los elementos especificados en el diccionario.
Python3
dict = {'key1': 'geeks', 'key2': 'for'} print( "Current Dict is:" , dict) # adding key3 dict.update({'key3': 'geeks'}) print( "Updated Dict is: " , dict) # adding dict1 (key4 and key5) to dict dict1 = {'key4': 'is', 'key5': 'fabulous'} dict.update(dict1) print(dict) # by assigning dict.update(newkey1='portal') print(dict)
Producción:
Current Dict is: {'key1': 'geeks', 'key2': 'for'} Updated Dict is: {'key1': 'geeks', 'key2': 'for', 'key3': 'geeks'} {'key1': 'geeks', 'key2': 'for', 'key3': 'geeks', 'key4': 'is', 'key5': 'fabulous'} {'key1': 'geeks', 'key2': 'for', 'key3': 'geeks', 'key4': 'is', 'key5': 'fabulous', 'newkey1': 'portal'}
Método 3: Agregar nuevas claves usando el método __setitem__
El método __setitem__ para agregar un par clave-valor a un dict usando el método __setitem__. Debe evitarse debido a su bajo rendimiento (ineficiente desde el punto de vista informático).
Python3
dict = {'key1': 'geeks', 'key2': 'for'} # using __setitem__ method dict.__setitem__('newkey2', 'GEEK') print(dict)
Producción:
{'key2': 'for', 'newkey2': 'GEEK', 'key1': 'geeks'}
Método 4: Agregar nuevas claves usando el operador **
Podemos fusionar el diccionario antiguo y el nuevo par clave/valor en otro diccionario. El uso de ** delante de pares clave-valor como **{‘c’: 3} lo desempaquetará como un nuevo objeto de diccionario.
Python3
dict = {'a': 1, 'b': 2} # will create a new dictionary new_dict = {**dict, **{'c': 3}} print(dict) print(new_dict)
Producción:
{'b': 2, 'a': 1} {'b': 2, 'c': 3, 'a': 1}
Método 5: agregue nuevas claves utilizando el operador » in» y las declaraciones IF .
Si la clave aún no está presente en el diccionario, la clave se agregará al diccionario mediante la instrucción if. Si se evalúa como falso, se imprimirá el mensaje «El diccionario ya tiene una clave «.
Python3
mydict = {"a": 1, "b": 2, "c": 3} if "d" not in mydict: mydict["d"] = "4" else: print("Dictionary already has key : One. Hence value is not overwritten ") print(mydict)
Producción:
{'a': 1, 'b': 2, 'c': 3, 'd': '4'}
Método 6: agregue nuevas claves usando un bucle for y el método enumerate()
Haz una lista de elementos. Use el método enumerate() para iterar la lista y luego agregue cada elemento al diccionario usando su índice como clave para cada valor.
Python3
list1 = {"a": 1, "b": 2, "c": 3} list2 = ["one: x", "two:y", "three:z"] # Using for loop enumerate() for i, val in enumerate(list2): list1[i] = val print(list1)
Producción:
{'a': 1, 'b': 2, 'c': 3, 0: 'one: x', 1: 'two:y', 2: 'three:z'}
Ejemplo 7: agregar varios elementos a un diccionario de Python con Zip
En este ejemplo, estamos usando un método zip de python para agregar claves y valores a un diccionario vacío python . También puede usar an en el diccionario existente para agregar elementos en el diccionario en lugar de un diccionario = {}
Python3
dictionary = {} keys = ['key2', 'key1', 'key3'] values = ['geeks', 'for', 'geeks'] for key, value in zip(keys, values): dictionary[key] = value print(dictionary)
Producción:
{'key2': 'geeks', 'key1': 'for', 'key3': 'geeks'}