我使用的是python3,6,我需要按值排序一个多维字典。你知道吗
这是格言:
{'Num_Subdir': 11,
'Path': '/root/git/dir1',
'RealSize': '236K',
'Subdir': {'1234': {'Num_Subdir': 10,
'Path': '/root/git/dir1/1234',
'RealSize': '44K',
'Subdir': {'ola000': {'Num_Subdir': 0,
'Path': '/root/git/dir1/1234/ola000',
'RealSize': '4,0K',
'Subdir': {}},
'ola00sd1': {'Num_Subdir': 0,
'Path': '/root/git/dir1/1234/ola00sd1',
'RealSize': '4,0K',
'Subdir': {}},
'ola00sdf': {'Num_Subdir': 0,
'Path': '/root/git/dir1/1234/ola00sdf',
'RealSize': '4,0K',
'Subdir': {}},
'ola1': {'Num_Subdir': 0,
'Path': '/root/git/dir1/1234/ola1',
'RealSize': '4,0K',
'Subdir': {}},
'ola2': {'Num_Subdir': 0,
'Path': '/root/git/dir1/1234/ola2',
'RealSize': '4,0K',
'Subdir': {}},
'ola5': {'Num_Subdir': 0,
'Path': '/root/git/dir1/1234/ola5',
'RealSize': '4,0K',
'Subdir': {}},
'ola6': {'Num_Subdir': 0,
'Path': '/root/git/dir1/1234/ola6',
'RealSize': '4,0K',
'Subdir': {}},
'ola7': {'Num_Subdir': 0,
'Path': '/root/git/dir1/1234/ola7',
'RealSize': '4,0K',
'Subdir': {}},
'ola8': {'Num_Subdir': 0,
'Path': '/root/git/dir1/1234/ola8',
'RealSize': '4,0K',
'Subdir': {}},
'ola9': {'Num_Subdir': 0,
'Path': '/root/git/dir1/1234/ola9',
'RealSize': '4,0K',
'Subdir': {}}}},
'cece': {'Num_Subdir': 0,
'Path': '/root/git/dir1/cece',
'RealSize': '4,0K',
'Subdir': {}},
'dir11': {'Num_Subdir': 7,
'Path': '/root/git/dir1/dir11',
'RealSize': '32K',
'Subdir': {'ola1': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir11/ola1',
'RealSize': '4,0K',
'Subdir': {}},
'ola2': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir11/ola2',
'RealSize': '4,0K',
'Subdir': {}},
'ola3': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir11/ola3',
'RealSize': '4,0K',
'Subdir': {}},
'ola5': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir11/ola5',
'RealSize': '4,0K',
'Subdir': {}},
'ola6': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir11/ola6',
'RealSize': '4,0K',
'Subdir': {}},
'ola7': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir11/ola7',
'RealSize': '4,0K',
'Subdir': {}},
'ola9': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir11/ola9',
'RealSize': '4,0K',
'Subdir': {}}}},
'dir13': {'Num_Subdir': 7,
'Path': '/root/git/dir1/dir13',
'RealSize': '32K',
'Subdir': {'ola1': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir13/ola1',
'RealSize': '4,0K',
'Subdir': {}},
'ola2': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir13/ola2',
'RealSize': '4,0K',
'Subdir': {}},
'ola3': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir13/ola3',
'RealSize': '4,0K',
'Subdir': {}},
'ola4': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir13/ola4',
'RealSize': '4,0K',
'Subdir': {}},
'ola5': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir13/ola5',
'RealSize': '4,0K',
'Subdir': {}},
'ola6': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir13/ola6',
'RealSize': '4,0K',
'Subdir': {}},
'ola8': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir13/ola8',
'RealSize': '4,0K',
'Subdir': {}}}},
'dir14': {'Num_Subdir': 11,
'Path': '/root/git/dir1/dir14',
'RealSize': '48K',
'Subdir': {'as1': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/as1',
'RealSize': '4,0K',
'Subdir': {}},
'as2': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/as2',
'RealSize': '4,0K',
'Subdir': {}},
'as3': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/as3',
'RealSize': '4,0K',
'Subdir': {}},
'as4': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/as4',
'RealSize': '4,0K',
'Subdir': {}},
'as5': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/as5',
'RealSize': '4,0K',
'Subdir': {}},
'as6': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/as6',
'RealSize': '4,0K',
'Subdir': {}},
'as7': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/as7',
'RealSize': '4,0K',
'Subdir': {}},
'as8': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/as8',
'RealSize': '4,0K',
'Subdir': {}},
'as9': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/as9',
'RealSize': '4,0K',
'Subdir': {}},
'as90': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/as90',
'RealSize': '4,0K',
'Subdir': {}},
'asd': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir14/asd',
'RealSize': '4,0K',
'Subdir': {}}}},
'dir15': {'Num_Subdir': 12,
'Path': '/root/git/dir1/dir15',
'RealSize': '52K',
'Subdir': {'as2': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/as2',
'RealSize': '4,0K',
'Subdir': {}},
'as4': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/as4',
'RealSize': '4,0K',
'Subdir': {}},
'as5': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/as5',
'RealSize': '4,0K',
'Subdir': {}},
'as6': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/as6',
'RealSize': '4,0K',
'Subdir': {}},
'as8': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/as8',
'RealSize': '4,0K',
'Subdir': {}},
'asd': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/asd',
'RealSize': '4,0K',
'Subdir': {}},
'qqwa': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/qqwa',
'RealSize': '4,0K',
'Subdir': {}},
'qqwd': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/qqwd',
'RealSize': '4,0K',
'Subdir': {}},
'qqwe': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/qqwe',
'RealSize': '4,0K',
'Subdir': {}},
'qqwg': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/qqwg',
'RealSize': '4,0K',
'Subdir': {}},
'qqwjj': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/qqwjj',
'RealSize': '4,0K',
'Subdir': {}},
'qqws': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir15/qqws',
'RealSize': '4,0K',
'Subdir': {}}}},
'dir16': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir16',
'RealSize': '4,0K',
'Subdir': {}},
'dir17': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir17',
'RealSize': '4,0K',
'Subdir': {}},
'dir18': {'Num_Subdir': 0,
'Path': '/root/git/dir1/dir18',
'RealSize': '4,0K',
'Subdir': {}},
'jaja': {'Num_Subdir': 0,
'Path': '/root/git/dir1/jaja',
'RealSize': '4,0K',
'Subdir': {}},
'ola1': {'Num_Subdir': 0,
'Path': '/root/git/dir1/ola1',
'RealSize': '4,0K',
'Subdir': {}}}}
预期结果是,输出将按Num_Subdir
值排序,并显示相同的dict,但顺序是这样的。
我通过一个函数得到dict,并将这个函数的输出重定向到var'Dirs',因此Dirs就是字典。你知道吗
我尝试使用sorted
函数,但每次都收到以下错误:
orden = sorted(['dirs'], key = lambda x: x['Num_Subdir'])
错误:
TypeError: string indices must be integers
编辑
我简化了我的字典,只得到我将来会用到的:
{'1234': {'/root/git/dir1/1234': 10},
'cece': {'/root/git/dir1/cece': 0},
'dir11': {'/root/git/dir1/dir11': 7},
'dir13': {'/root/git/dir1/dir13': 7},
'dir14': {'/root/git/dir1/dir14': 11},
'dir15': {'/root/git/dir1/dir15': 12},
'dir16': {'/root/git/dir1/dir16': 0},
'dir17': {'/root/git/dir1/dir17': 0},
'dir18': {'/root/git/dir1/dir18': 0},
'jaja': {'/root/git/dir1/jaja': 0},
'ola1': {'/root/git/dir1/ola1': 0}}
现在如何按目录的值排序?你知道吗
编辑2:
我知道了:分类(口述事项(),key=lambda x:[int(x)表示x中的x[1]。values()],reverse=True)
谢谢大家
希望这有帮助。。。你知道吗
试着订购一个非常有用的
现在您将获得已排序的项目。你知道吗
我认为问题出在你使用的数据结构上!你知道吗
默认情况下,python中的字典没有名为sort的特性。所以,你需要考虑另一种选择。你知道吗
解决这个问题的方法之一是使用元组列表。你知道吗
为什么要列出元组?
元组列表可以在必要时轻松地转换为dict。例如
现在,由于您的数据是dict格式的,您需要将其转换为元组列表,可以使用目录项()方法。下面是方法
结果与
list_of_tuples
完全相同。记住,dict类型对象的键应该始终是不可变的数据类型。你知道吗现在,回到你的问题,
在x中得到的值是一个字符串,而不是dict类型的对象。因此,
TypeError
。你知道吗如果把你的口述简化为:
然后可以按数字排序打印:
输出:
相关问题 更多 >
编程相关推荐