如何遍历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])
答案 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}