A veces, mientras trabajamos con registros de Python, podemos tener datos que vienen sin nombres/identificadores de columna adecuados, que solo pueden identificarse por su índice, pero tenemos la intención de asignarles claves y representarlos en forma de diccionarios. Este tipo de problema puede tener aplicación en dominios como el desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_tuple = ((1, ‘Gfg’, 2), (3, ‘mejor’, 4)), claves = [‘clave’, ‘valor’, ‘id’]
Salida : [{‘clave’: 1 , ‘valor’: ‘Gfg’, ‘id’: 2}, {‘clave’: 3, ‘valor’: ‘mejor’, ‘id’: 4}]Entrada : test_tuple = test_tuple = ((1, ‘Gfg’), (2, 3)), claves = [‘clave’, ‘valor’]
Salida : [{‘clave’: 1, ‘valor’: ‘Gfg’ }, {‘clave’: 2, ‘valor’: 3}]
Método n.º 1: Uso de comprensión de lista + comprensión de diccionario
La combinación de las funcionalidades anteriores se puede utilizar para resolver este problema. En esto, realizamos la tarea de asignar claves usando comprensión de diccionario e iteración de todas las claves y construyendo datos usando comprensión de lista.
# Python3 code to demonstrate working of # Convert Nested Tuple to Custom Key Dictionary # Using list comprehension + dictionary comprehension # initializing tuple test_tuple = ((4, 'Gfg', 10), (3, 'is', 8), (6, 'Best', 10)) # printing original tuple print("The original tuple : " + str(test_tuple)) # Convert Nested Tuple to Custom Key Dictionary # Using list comprehension + dictionary comprehension res = [{'key': sub[0], 'value': sub[1], 'id': sub[2]} for sub in test_tuple] # printing result print("The converted dictionary : " + str(res))
La tupla original: ((4, ‘Gfg’, 10), (3, ‘is’, 8), (6, ‘Best’, 10))
El diccionario convertido: [{‘key’: 4, ‘value’ : ‘Gfg’, ‘id’: 10}, {‘clave’: 3, ‘valor’: ‘es’, ‘id’: 8}, {‘clave’: 6, ‘valor’: ‘Mejor’, ‘ identificación’: 10}]
Método n.° 2: usar zip()
la comprensión de lista +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, asignamos claves de índice usando el contenido de la lista y mapeando usando zip(). En esto, se proporciona flexibilidad de predefinición/escalado de claves.
# Python3 code to demonstrate working of # Convert Nested Tuple to Custom Key Dictionary # Using zip() + list comprehension # initializing tuple test_tuple = ((4, 'Gfg', 10), (3, 'is', 8), (6, 'Best', 10)) # printing original tuple print("The original tuple : " + str(test_tuple)) # initializing Keys keys = ['key', 'value', 'id'] # Convert Nested Tuple to Custom Key Dictionary # Using zip() + list comprehension res = [{key: val for key, val in zip(keys, sub)} for sub in test_tuple] # printing result print("The converted dictionary : " + str(res))
La tupla original: ((4, ‘Gfg’, 10), (3, ‘is’, 8), (6, ‘Best’, 10))
El diccionario convertido: [{‘key’: 4, ‘value’ : ‘Gfg’, ‘id’: 10}, {‘clave’: 3, ‘valor’: ‘es’, ‘id’: 8}, {‘clave’: 6, ‘valor’: ‘Mejor’, ‘ identificación’: 10}]
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