Dada una lista, conviértala en un diccionario asignando elementos alternativos como pares clave-valor.
Entrada : test_list = [2, 3, 5, 6, 7, 8]
Salida : {3: 6, 6: 8, 2: 5, 5: 7}
Explicación : elementos alternativos asignados para obtener pares clave-valor. 3 -> 6 [alterno]Entrada : test_list = [2, 3, 5, 6]
Salida : {3: 6, 2: 5}
Explicación : elementos alternativos asignados para obtener pares clave-valor. 3 -> 6 [alterno]
Método #1: Usar bucle
Esta es una de las formas en que se puede realizar esta tarea. En esto, iteramos dos veces para obtener ambos elementos alternativos para obtener todos los diccionarios clave-valor alternativos deseados.
Python3
# Python3 code to demonstrate working of # Alternate Elements Dictionary # Using loop # initializing list test_list = [2, 3, 5, 6, 7, 8, 9, 10] # printing original list print("The original list is : " + str(test_list)) res = dict() # pairing first set of Alternate elements for idx in range(len(test_list) - 2): if idx % 2: res[test_list[idx]] = test_list[idx + 2] # pairing other set for idx in range(len(test_list) - 2): if not idx % 2: res[test_list[idx]] = test_list[idx + 2] # printing result print("The extracted dictionary : " + str(res))
The original list is : [2, 3, 5, 6, 7, 8, 9, 10] The extracted dictionary : {3: 6, 6: 8, 8: 10, 2: 5, 5: 7, 7: 9}
Método n.º 2: uso de la comprensión del diccionario + segmentación de listas
Esta es otra forma más en la que se puede realizar esta tarea. En esto, cortamos ambas listas de elementos alternativos y usamos la comprensión del diccionario para emparejar.
Python3
# Python3 code to demonstrate working of # Alternate Elements Dictionary # Using dictionary comprehension + list slicing # initializing list test_list = [2, 3, 5, 6, 7, 8, 9, 10] # printing original list print("The original list is : " + str(test_list)) # extracting lists list1 = test_list[1::2] list2 = test_list[::2] # constructing pairs using dictionary comprehension res = {list1[idx] : list1[idx + 1] for idx in range(len(list1) - 1)} res.update({list2[idx] : list2[idx + 1] for idx in range(len(list2) - 1)}) # printing result print("The extracted dictionary : " + str(res))
The original list is : [2, 3, 5, 6, 7, 8, 9, 10] The extracted dictionary : {3: 6, 6: 8, 8: 10, 2: 5, 5: 7, 7: 9}
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