我的字典如下:
{' PLATINUM': [{'Name': 'MATH',
'Description': 'You can earn up to 50 Rs per year',
'value': 50},
{'Name': 'SCIENCE',
'Description': 'You can earn up to 100 Rs per year',
'value': 100},
{'Name': 'TOTAL',
'Description': 'You can earn up to 200 Rs per year',
'value': 200},
{'Name': 'SOCIAL',
'Description': 'You can earn up to 50 Rs per year',
'value': 50}],
'TITANIUM': [{'Name': 'SOCIAL',
'Description': 'You can earn up to 20 Rs per year',
'value': 20},
{'Name': 'MATH',
'Description': 'You can earn up to 10 Rs per year',
'value': 10},
{'Name': 'TOTAL',
'Description': 'You can earn up to 30 Rs per year',
'value': 30}]}
我希望在每个级别上对它进行排序-“ PLATINUM”,“ TITANIUM”(以及多个级别)和“ value”。 因此预期的字典将如下所示:
{' PLATINUM': [
{'Name': 'TOTAL',
'Description': 'You can earn up to 200 Rs per year',
'value': 200},
{'Name': 'SCIENCE',
'Description': 'You can earn up to 100 Rs per year',
'value': 100},
{'Name': 'MATH',
'Description': 'You can earn up to 50 Rs per year',
'value': 50},
{'Name': 'SOCIAL',
'Description': 'You can earn up to 50 Rs per year',
'value': 50}],
'TITANIUM': [
{'Name': 'TOTAL',
'Description': 'You can earn up to 30 Rs per year',
'value': 30}
{'Name': 'SOCIAL',
'Description': 'You can earn up to 20 Rs per year',
'value': 20},
{'Name': 'MATH',
'Description': 'You can earn up to 10 Rs per year',
'value': 10}]}
有人可以帮助我用python代码实现它吗?
答案 0 :(得分:1)
您可以使用以下字典理解,其中内部字典根据键value
是sorted
:
from operator import itemgetter
d = {' PLATINUM': [{'Name': 'MATH', 'Description': 'You ...'}
{k:sorted(d[k], key=itemgetter('value'), reverse=True) for k in d}
输出
{' PLATINUM': [{'Name': 'TOTAL',
'Description': 'You can earn up to 200 Rs per year',
'value': 200},
{'Name': 'SCIENCE',
'Description': 'You can earn up to 100 Rs per year',
'value': 100},
{'Name': 'MATH',
'Description': 'You can earn up to 50 Rs per year',
'value': 50},
{'Name': 'SOCIAL',
'Description': 'You can earn up to 50 Rs per year',
'value': 50}],
'TITANIUM': [{'Name': 'TOTAL',
'Description': 'You can earn up to 30 Rs per year',
'value': 30},
{'Name': 'SOCIAL',
'Description': 'You can earn up to 20 Rs per year',
'value': 20},
{'Name': 'MATH',
'Description': 'You can earn up to 10 Rs per year',
'value': 10}]}