Python: elementos de lista alternativos como pares clave-valor

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

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

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

Deja una respuesta

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