 Open in App
Not now

# Python – Rotate dictionary by K

• Difficulty Level : Easy
• Last Updated : 16 Nov, 2020

Given a dictionary perform its reordering by right rotating dictionary keys by K.

Examples:

Input : test_dict = {1:6, 8:1, 9:3, 10:8, 12:6, 4:9}, K = 2
Output : {12: 6, 4: 9, 1: 6, 8: 1, 9: 3, 10: 8}
Explanation : After right rotation ( cyclic ) by 2 elements, items are re-arranged.

Input : test_dict = {1:6, 8:1, 9:3, 10:8, 12:6, 4:9}, K = 1
Output : {4: 9, 1: 6, 8: 1, 9: 3, 10: 8, 12: 6}
Explanation : After right rotation ( cyclic ) by 1 element, items are re-arranged.

Method #1 : Using list comprehension + items() + dictionary comprehension

In this, we perform task of conversion of dictionary to tuples list, and then perform list rotate, post that, result is again converted to dictionary to get resultant keys rotation.

## 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)) `

Output:

The original dictionary is : {1: 6, 8: 1, 9: 3, 10: 8, 12: 6, 4: 9}
The required result : {12: 6, 4: 9, 1: 6, 8: 1, 9: 3, 10: 8}

Method #2 : Using deque.rotate() + dictionary comprehension + items()

In this, we perform task of rotating using deque.rotate utility, rest all functionalities are performed in similar ways as per in above method.

## 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)) `

Output:

The original dictionary is : {1: 6, 8: 1, 9: 3, 10: 8, 12: 6, 4: 9}
The required result : {12: 6, 4: 9, 1: 6, 8: 1, 9: 3, 10: 8}

My Personal Notes arrow_drop_up
Related Articles