Python: convierte la lista de valores de tupla en una lista de tuplas

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

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

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

Deja una respuesta

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