如何遍历字典中按元素排序的字典?

时间:2020-10-24 12:58:09

标签: python sorting dictionary

如何遍历dict中按元素排序的dict? 例如我有下级命令,想得到输出 在订阅中按TEMP项排序?

输入值:

GetRequiredService<IRequestHandler<T, TS>>()

类似的东西

d={ 'Kitchen':{'Light':22, 'Temp':23, 'Power':0},
    'Garage':{'Light':0, 'Temp':10, 'Power':5},
    'LivingRoom':{'Light':0, 'Temp':21, 'Power':120},
}

应提供该结果:

for i in sorted(d):
    print (i,d[i])

1 个答案:

答案 0 :(得分:1)

您可以使用lambda函数的key参数提供自定义sorted函数作为排序标准:

for k, v in sorted(d.items(), key = lambda i : i[1]['Temp']):
    print(k, v)

输出:

Garage {'Light': 0, 'Temp': 10, 'Power': 5}
LivingRoom {'Light': 0, 'Temp': 21, 'Power': 120}
Kitchen {'Light': 22, 'Temp': 23, 'Power': 0}

另一种仅使用键,然后在以后获取值的方法:

for k in sorted(d, key = lambda k : d[k]['Temp']):
    print(k, d[k])

输出:

Garage {'Light': 0, 'Temp': 10, 'Power': 5}
LivingRoom {'Light': 0, 'Temp': 21, 'Power': 120}
Kitchen {'Light': 22, 'Temp': 23, 'Power': 0}