Python: tuplas asignadas a columnas a elementos del diccionario

Dada Tuple Matrix de longitud 2, asigne el valor del elemento de cada columna con la siguiente columna y construya claves de diccionario.

Entrada : test_list = [[(1, 4), (6, 3), (4, 7)], [(7, 3), (10, 14), (11, 22)]]
Salida : {1: 7, 4: 3, 6: 10, 3: 14, 4: 11, 7: 22}
Explicación : 1 -> 7, 4 -> 3…, como en la misma columna e índices.

Entrada : test_list = [[(1, 4), (6, 3)], [(7, 3), (10, 14)]]
Salida : {1: 7, 4: 3, 6: 10, 3: 14}
Explicación : emparejamiento inteligente de columnas que se explican por sí mismas.

Método #1: Usar bucle 

Esta es una de las formas en que se puede realizar esta tarea. En esto, iteramos para todos los elementos con sus siguientes elementos de columna y construimos un par clave-valor de diccionario.

Python3

# Python3 code to demonstrate working of 
# Column Mapped Tuples to dictionary items
# Using loop
  
# initializing list
test_list = [[(5, 6), (7, 4), (1, 2)], 
             [(7, 3), (10, 14), (11, 22)] ]
  
# printing original list
print("The original list : " + str(test_list))
  
res = dict()
  
# loop for tuple lists
for idx in range(len(test_list) - 1):
    for idx2 in range(len(test_list[idx])):
          
        # column wise dictionary pairing 
        res[test_list[idx][idx2][0]] = test_list[idx + 1][idx2][0]
        res[test_list[idx][idx2][1]] = test_list[idx + 1][idx2][1]
          
# printing result 
print("The constructed dictionary : " + str(res))
Producción

La lista original: [[(5, 6), (7, 4), (1, 2)], [(7, 3), (10, 14), (11, 22)]]
El diccionario construido: { 5:7, 6:3, 7:10, 4:14, 1:11, 2:22}

Método #2: Usando la comprensión del diccionario + zip()

La combinación de las funciones anteriores proporciona una sola línea para resolver este problema. En esto, realizamos la tarea de comprimir todas las columnas usando zip() y la comprensión del diccionario se usa para pares clave-valor.

Python3

# Python3 code to demonstrate working of 
# Column Mapped Tuples to dictionary items
# Using dictionary comprehension + zip()
  
# initializing list
test_list = [[(5, 6), (7, 4), (1, 2)], 
             [(7, 3), (10, 14), (11, 22)] ]
  
# printing original list
print("The original list : " + str(test_list))
  
# nested dictionary comprehension to form pairing 
# paired using zip()
res = {key[idx] : val[idx] for key, val in zip(
         *tuple(test_list)) for idx in range(len(key))}
          
# printing result 
print("The constructed dictionary : " + str(res))
Producción

La lista original: [[(5, 6), (7, 4), (1, 2)], [(7, 3), (10, 14), (11, 22)]]
El diccionario construido: { 5:7, 6:3, 7:10, 4:14, 1:11, 2:22}

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 *