计算嵌套字典中的max



我有一个像这样的嵌套字典:

time_values = {
"A": {
"time": {
"B": 2,
"C": 3,
"D": 5
}
},
"B": {
"time": {
"A": 7,
"C": 2,
"D": 3
}
},
"C": {
"time": {
"A": 8,
"B": 9,
"D": 2
}
},
"D": {
"time": {
"A": 7,
"B": 2,
"C": 3
}
}
}

,我想计算所有时间的最大值。我认为这里的问题是,字典中唯一的公共键是time,所有其他键都可以改变,因为它们是两个点之间的旅行时间。

初始代码是:

max_time = 0
for station in time_values:
for other_station in time_values[station]["time"]:
if time_values[station]["time"][other_station] > max_time:
max_time = time_values[station]["time"][other_station]

但是我想让它更python化,以更好的方式使用字典。

我正在尝试这样做:

time_list = []
for _, b in time_values.items():
time_list.append(list(b.get("time").values()))
max_value = max(list(itertools.chain(*time_list)))

但我不确定这是否是一个"更好的"。代码…

任何想法?

查找每个主题的最大值,然后查找所有主题的最大值。

print(max([max(v['time'].values()) for v in time_values.values()]))

最新更新