Dado un diccionario con valores como lista de tuplas, conviértalo en una lista de tuplas con asignación de claves.
Entrada : test_dict = {‘Gfg’: [(5, 6, 7), (6, )], ‘es’: [(5, 5, 2, 2, 6)], ‘mejor’: [(7, )]}
Salida : [(‘Gfg’, 5, 6, 7), (‘Gfg’, 6), (‘is’, 5, 5, 2, 2, 6), (‘best’, 7)]
Explicación : claves agrupadas con valores.Entrada : test_dict = {‘Gfg’: [(5, ), (6, )], ‘es’: [(5, )], ‘mejor’: [(7, )]}
Salida : [(‘Gfg’ , 5), (‘Gfg’, 6), (‘is’, 5), (‘best’, 7)]
Explicación : Teclas agrupadas con valores.
Método #1: Usar bucle + * operador + elements()
Esta es una de las formas en que se puede realizar esta tarea. En esto, iteramos para todas las claves usando claves de bucle y mapa con todos los valores desempaquetando todos los valores en tupla usando el operador *.
Python3
# Python3 code to demonstrate working of # Convert Tuple value list to List of tuples # Using loop + * operator + items() # initializing dictionary test_dict = {'Gfg' : [(5, 6, 7), (1, 3), (6, )], 'is' : [(5, 5, 2, 2, 6)], 'best' :[(7, ), (9, 16)]} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # using items() to extract all the items of # dictionary res = [] for key, val in test_dict.items(): for ele in val: res.append((key, *ele)) # printing result print("The converted tuple list : " + str(res))
El diccionario original es: {‘Gfg’: [(5, 6, 7), (1, 3), (6, )], ‘is’: [(5, 5, 2, 2, 6)], ‘ mejor’: [(7, ), (9, 16)]}
La lista de tuplas convertida: [(‘Gfg’, 5, 6, 7), (‘Gfg’, 1, 3), (‘Gfg’, 6 ), (‘es’, 5, 5, 2, 2, 6), (‘mejor’, 7), (‘mejor’, 9, 16)]
Método n.° 2: usar la comprensión de lista + * operador + elements()
Esta es otra manera de resolver este problema. Resuelve de manera similar al método anterior. La única diferencia es que ofrece una solución de una sola línea utilizando la comprensión de listas.
Python3
# Python3 code to demonstrate working of # Convert Tuple value list to List of tuples # Using list comprehension + * operator + items() # initializing dictionary test_dict = {'Gfg' : [(5, 6, 7), (1, 3), (6, )], 'is' : [(5, 5, 2, 2, 6)], 'best' :[(7, ), (9, 16)]} # printing original dictionary print("The original dictionary is : " + str(test_dict)) # list comprehension encapsulates whole logic # into one line res = [(key, *ele) for key, sub in test_dict.items() for ele in sub] # printing result print("The converted tuple list : " + str(res))
El diccionario original es: {‘Gfg’: [(5, 6, 7), (1, 3), (6, )], ‘is’: [(5, 5, 2, 2, 6)], ‘ mejor’: [(7, ), (9, 16)]}
La lista de tuplas convertida: [(‘Gfg’, 5, 6, 7), (‘Gfg’, 1, 3), (‘Gfg’, 6 ), (‘es’, 5, 5, 2, 2, 6), (‘mejor’, 7), (‘mejor’, 9, 16)]
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