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字典进行排序?
您对词典的使用可能并不理想。当键具有重要意义并且需要快速访问匹配值时,字典非常有用。列表可能更合适。
无论如何,你可以这样做:
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)