Python – Rotar diccionario por K

Dado un diccionario, realice su reordenación girando a la derecha las teclas del diccionario por K.

Ejemplos:

Entrada : test_dict = {1:6, 8:1, 9:3, 10:8, 12:6, 4:9}, K = 2 
Salida : {12: 6, 4: 9, 1: 6, 8: 1, 9: 3, 10: 8} 
Explicación : después de la rotación a la derecha (cíclica) de 2 elementos, los elementos se reorganizan.
 

Entrada : test_dict = {1:6, 8:1, 9:3, 10:8, 12:6, 4:9}, K = 1 
Salida : {4: 9, 1: 6, 8: 1, 9: 3, 10: 8, 12: 6} 
Explicación : después de la rotación a la derecha (cíclica) de 1 elemento, los elementos se reorganizan. 

Método n. ° 1: usar comprensión de lista + elements() + comprensión de diccionario

En esto, realizamos la tarea de conversión del diccionario a la lista de tuplas, y luego realizamos la rotación de la lista, publicamos eso, el resultado se convierte nuevamente al diccionario para obtener la rotación de claves resultante.

Python3

# Python3 code to demonstrate working of
# Rotate dictionary by K
# Using list comprehension + items() + dictionary comprehension
  
# initializing dictionary
test_dict = {1: 6, 8: 1, 9: 3, 10: 8, 12: 6, 4: 9}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing K
K = 2
  
# converting to tuples list
test_dict = list(test_dict.items())
  
# performing rotate
res = [test_dict[(i - K) % len(test_dict)]
       for i, x in enumerate(test_dict)]
  
# reconverting to dictionary
res = {sub[0]: sub[1] for sub in res}
  
# printing result
print("The required result : " + str(res))

Producción:

El diccionario original es: {1: 6, 8: 1, 9: 3, 10: 8, 12: 6, 4: 9}
El resultado requerido: {12: 6, 4: 9, 1: 6, 8: 1 , 9: 3, 10: 8}

Método #2: Usar deque.rotate() + comprensión de diccionario + items()

En esto, realizamos la tarea de rotar usando la utilidad deque.rotate, el resto de las funcionalidades se realizan de manera similar al método anterior.

Python3

# Python3 code to demonstrate working of
# Rotate dictionary by K
# Using deque.rotate() + dictionary comprehension + items()
from collections import deque
  
# initializing dictionary
test_dict = {1: 6, 8: 1, 9: 3, 10: 8, 12: 6, 4: 9}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# initializing K
K = 2
  
# converting to tuples list
test_dict = list(test_dict.items())
  
# performing rotate
# using deque
test_dict = deque(test_dict)
test_dict.rotate(K)
test_dict = list(test_dict)
  
# reconverting to dictionary
res = {sub[0]: sub[1] for sub in test_dict}
  
# printing result
print("The required result : " + str(res))

Producción:

El diccionario original es: {1: 6, 8: 1, 9: 3, 10: 8, 12: 6, 4: 9}
El resultado requerido: {12: 6, 4: 9, 1: 6, 8: 1 , 9: 3, 10: 8}

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 *