按值对字典排序

时间:2019-05-10 07:24:44

标签: python python-3.5

我想按从高到低的顺序对字典进行排序。字典是这样的:

{'data1': {'/home/data1': 273}, 'data2': {'/home/data2': 2}, 'data3': {'/home/data3': 10}, 'data4': {'/home/data4': 1}}

我得到了一些可以在一个VM上运行的代码,但是当我尝试在另一个VM上运行却不起作用。


dict = sorted(dicta.items(), key=lambda x: [int(x) for x in x[1].values()], reverse = True)


在一个VM中,我遇到了这个错误,而在另一个VM中,它却起作用了(使用virtualenv使用相同的python版本执行相同的脚本等)

TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果运行代码,应该没有错误。但是您没有字典的名称。

dict_ =  {'data1': {'/home/data1': 273}, 'data2': {'/home/data2': 2}, 'data3': {'/home/data3': 10}, 'data4': {'/home/data4': 1}}

dictSorted = sorted(dict_.items(), key=lambda x: [int(x) for x in x[1].values()], reverse = True)