Sorting of simple python dictionary for printing specific value

sam*_*sam 3 python dictionary python-3.x

I have a python dictionary.

a = {'1':'saturn', '2':'venus', '3':'mars', '4':'jupiter', '5':'rahu', '6':'ketu'}
planet = input('Enter planet : ')
print(planet)
Run Code Online (Sandbox Code Playgroud)

If user enteres 'rahu', dictionary to be sorted like the following

a = {'1':'rahu', '2':'ketu', '3':'saturn', '4':'venus', '5':'mars', '6':'jupiter' }
print('4th entry is : ')
Run Code Online (Sandbox Code Playgroud)

它应该根据字典中的下一个值对字典进行排序。如果字典结束,则应从字典的初始值开始。它应该打印字典的第四个条目,它应该返回

venus
Run Code Online (Sandbox Code Playgroud)

如何根据用户输入值对python字典进行排序?

moz*_*way 5

您对词典的使用可能并不理想。当键具有重要意义并且需要快速访问匹配值时,字典非常有用。列表可能更合适。

无论如何,你可以这样做:

l = list(a.values())
idx = l.index(planet)
a = dict(enumerate(l[idx:]+l[:idx], start=1))
Run Code Online (Sandbox Code Playgroud)

注意。上面的代码要求输入字符串是有效的字典值,如果不是,您将必须按照ValueError您认为合适的方式进行处理。

输出:

{1: 'rahu', 2: 'ketu', 3: 'saturn', 4: 'venus', 5: 'mars', 6: 'jupiter'}
Run Code Online (Sandbox Code Playgroud)