根据值对字典进行排序
Sorting a dictionary of pairs based on value
我有密码
mydict = {"layer1" : { 0: 0.765}, 'layer2': {0: 0.9876}}
for idx in range(5):
mydict['layer1'][idx] = idx + 900
mydict['layer2'][idx] = idx + 800
sorted_x = sorted(mydict.items(), key=lambda kv: kv[1])
它给出了错误
TypeError: '<' not supported between instances of 'dict' and 'dict'
当我输入时
sorted_x = sorted(mydict.items(), key=lambda kv: kv[2])
它给出了错误
IndexError: tuple index out of range
它仅适用于作为字符串的索引 0!
我希望字典根据值进行排序并给出类似
的结果
[('layer2', {0: 800, 1: 801, 2: 802, 3: 803, 4: 804}), ('layer1', {0: 900, 1: 901, 2: 902, 3: 903, 4: 904})]
我该怎么办?
您可以在代码中做一个简单的更改:
改变
sorted_x = sorted(mydict.items(), key=lambda kv: kv[1])
至:
sorted_x = sorted(mydict.items(), key=lambda kv: kv[1][1])
我有密码
mydict = {"layer1" : { 0: 0.765}, 'layer2': {0: 0.9876}}
for idx in range(5):
mydict['layer1'][idx] = idx + 900
mydict['layer2'][idx] = idx + 800
sorted_x = sorted(mydict.items(), key=lambda kv: kv[1])
它给出了错误
TypeError: '<' not supported between instances of 'dict' and 'dict'
当我输入时
sorted_x = sorted(mydict.items(), key=lambda kv: kv[2])
它给出了错误
IndexError: tuple index out of range
它仅适用于作为字符串的索引 0!
我希望字典根据值进行排序并给出类似
的结果[('layer2', {0: 800, 1: 801, 2: 802, 3: 803, 4: 804}), ('layer1', {0: 900, 1: 901, 2: 902, 3: 903, 4: 904})]
我该怎么办?
您可以在代码中做一个简单的更改:
改变
sorted_x = sorted(mydict.items(), key=lambda kv: kv[1])
至:
sorted_x = sorted(mydict.items(), key=lambda kv: kv[1][1])