A veces, mientras trabajamos con diccionarios, podemos tener un caso de uso en el que necesitamos incrementar el valor de una clave en particular en el diccionario. Puede parecer un problema bastante sencillo, pero el problema surge cuando no se conoce la existencia de una clave, por lo que a veces se convierte en un proceso de 2 pasos. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n. ° 1: usarget()
la función get se puede usar para inicializar una clave inexistente con 0 y luego es posible el incremento. De esta forma se puede evitar el problema de la clave inexistente.
# Python3 code to demonstrate working of # Increment value in dictionary # Using get() # Initialize dictionary test_dict = {'gfg' : 1, 'is' : 2, 'for' : 4, 'CS' : 5} # printing original dictionary print("The original dictionary : " + str(test_dict)) # Using get() # Increment value in dictionary test_dict['best'] = test_dict.get('best', 0) + 3 # printing result print("Dictionary after the increment of key : " + str(test_dict))
El diccionario original: {‘is’: 2, ‘CS’: 5, ‘for’: 4, ‘gfg’: 1}
Diccionario después del incremento de clave: {‘is’: 2, ‘CS’: 5, ‘ para’: 4, ‘mejor’: 3, ‘gfg’: 1}
Método n.º 2: usardefaultdict()
Este problema también se puede resolver usando un método predeterminado, que inicializa las claves potenciales y no arroja una excepción en caso de que no existan claves.
# Python3 code to demonstrate working of # Increment value in dictionary # Using defaultdict() from collections import defaultdict # Initialize dictionary test_dict = defaultdict(int) # printing original dictionary print("The original dictionary : " + str(dict(test_dict))) # Using defaultdict() # Increment value in dictionary test_dict['best'] += 3 # printing result print("Dictionary after the increment of key : " + str(dict(test_dict)))
El diccionario original: {}
Diccionario después del incremento de clave: {‘mejor’: 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