Python: convierte tupla anidada en diccionario clave personalizado

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))
Producción :

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))
Producción :

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *