将三维字典里所有的value取出,找出最大的n个数值和对应的key
时间: 2024-02-20 20:01:17 浏览: 125
好的,可以通过以下Python代码实现:
```python
n = 3 # 找出最大的3个值
my_dict = {
"a": {"x": {"m": 1, "n": 2}, "y": {"m": 3, "n": 4}},
"b": {"x": {"m": 5, "n": 6}, "y": {"m": 7, "n": 8}}
}
all_values = []
for key1, inner_dict in my_dict.items():
for key2, inner_inner_dict in inner_dict.items():
for key3, value in inner_inner_dict.items():
all_values.append((key1, key2, key3, value))
max_values = sorted(all_values, key=lambda x: x[3], reverse=True)[:n]
print(max_values)
```
这段代码会输出三维字典中最大的三个值及其对应的键,即 `[('b', 'y', 'n', 8), ('b', 'y', 'm', 7), ('b', 'x', 'n', 6)]`。
这里将三维字典中所有的值及其对应的键存储在一个列表`all_values`中,然后使用`sorted`函数按照值进行排序,最后使用切片`[:n]`取出最大的`n`个元素,即最大的`n`个值及其对应的键。需要注意的是,`all_values`中存储的是一个四元组`(key1, key2, key3, value)`,分别表示三维字典中的键和值。排序时使用了`lambda x: x[3]`,表示按照元组中的第四个元素(即值)进行排序。
阅读全文