Python: agregar valores de varios tipos en el diccionario

A veces, mientras trabajamos con diccionarios de Python, podemos tener problemas en los que necesitamos actualizar los valores del diccionario, según el tipo de datos. Este tipo de problema puede tener aplicación en muchos dominios que incluyen datos. Vamos a discutir una forma en que este problema puede ser resuelto.

Entrada : test_dict = {‘gfg’: “”, ‘is’: {}, ‘best’: []}
Salida : {‘gfg’: ‘geeks’, ‘is’: {‘c’: 7}, ‘ mejor’: [4, 5]}

Entrada : test_dict = {‘gfg’: “123”, ‘is’: {}, ‘best’: [“geeks”]}
Salida : {‘gfg’: ‘123geeks’, ‘is’: {‘c’: 7}, ‘mejor’: [‘geeks’, 4, 5]}

Método: Usoisinstance() + update() + extend()
La combinación de las funciones anteriores se puede utilizar para realizar esta tarea. En esto, verificamos el tipo de datos de valor usando isinstance() y realizamos la actualización del diccionario usando update(), la actualización de la lista usando extend().

# Python3 code to demonstrate working of 
# Append Multitype Values in Dictionary
# Using isinstance() + update() + extend()
  
# helper_fnc
def update_dictionary(key, val, test_dict):
      
    if key not in test_dict:
        current_dict[key] = value 
      
    elif type(val) not in [str, list, dict]:
        raise ValueError("Invalid Data Type")
      
    elif isinstance(val, list):
        test_dict[key].extend(val)
      
    elif isinstance(val, dict):
        test_dict[key].update(val)
      
    else:
        test_dict[key] = test_dict[key] + val
      
    return test_dict
  
# initializing dictionary
test_dict = {'gfg' : "geekfor", 'is' : {'a' : 5, 'b' : 6}, 'best' : [1, 2, 3]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing dict, string and append
up_dict = {'c' : 7}
up_str = 'geeks'
up_list = [4, 5]
  
# Append Multitype Values in Dictionary
# Using isinstance() + update() + extend()
res = update_dictionary('gfg', up_str, test_dict)
res = update_dictionary('is', up_dict, res)
res = update_dictionary('best', up_list, res)
  
# printing result 
print("The update dictionary : " + str(res)) 
Producción :

El diccionario original es: {‘is’: {‘b’: 6, ‘a’: 5}, ‘best’: [1, 2, 3], ‘gfg’: ‘geekfor’}
El diccionario actualizado: {‘ es’: {‘b’: 6, ‘a’: 5, ‘c’: 7}, ‘mejor’: [1, 2, 3, 4, 5], ‘gfg’: ‘geekforgeeks’}

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 *