【发布时间】:2023-01-13 18:41:31
【问题描述】:
我有一个这样的嵌套字典:
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,所有其他的都可以改变,因为它们是 2 点之间的旅行时间。
最初的代码是:
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]
但我想以更好的方式使用字典使其更像 pythonic。
我正在尝试这样的事情:
time_list = []
for _, b in time_values.items():
time_list.append(list(b.get("time").values()))
max_value = max(list(itertools.chain(*time_list)))
但我不确定它是否是一个“更好”的代码......
任何的想法?
【问题讨论】:
标签: python-3.x dictionary