Python创建存储各键对应值取值范围的嵌套字典
实现方法
首先把你所有结构一致的字典存入一个列表:
dict_list = [d1, d2, d3, ..., dn]
新手易懂的循环写法
# 初始化结果字典 d_out = {} # 取所有公共键(所有字典结构一致,取第一个字典的键即可) all_keys = dict_list[0].keys() for key in all_keys: # 收集当前键在所有字典里的对应值 current_values = [d[key] for d in dict_list] # 计算最小、最大值存入结果 d_out[key] = { "min": min(current_values), "max": max(current_values) }
简洁版字典推导式写法
d_out = { key: { "min": min(d[key] for d in dict_list), "max": max(d[key] for d in dict_list) } for key in dict_list[0].keys() }
测试验证
用你给出的示例字典测试:
d1 = {'a': 13, 'b':4.53, 'c':3243, 'd':0.2323} d2 = {'a': 12, 'b':4.3, 'c':373, 'd':0.263} dn = {'a': 16, 'b':9.53, 'c':76843, 'd':13} dict_list = [d1, d2, dn] # 运行上述代码后得到的d_out和你预期的输出完全一致
注意事项
如果你的字典可能存在缺键的情况,可以把取值逻辑改成d.get(key, 缺省值),避免触发KeyError。
内容的提问来源于stack exchange,提问作者ZeSamPam
相关产品推荐
相关产品推荐

