Python不同结构字典除法运算优化:有没有更简洁的实现方法?
字典除法运算优化方案
核心实现
该场景可以直接通过嵌套字典推导式完成计算,完全不需要额外的中间变量、深拷贝和多次遍历操作,代码可读性和简洁度大幅提升,执行效率和原有方案一致:
# 输入定义 d1 = {3: 1, 2: 3, 1: 3} d2 = {3: {'good best third': 1, 'mind third': 0, 'bad third': 0}, 2: {'good so second': 0, 'mind second': 1, 'bad second': 2}, 1: {'good': 2, 'mind': 0, 'bad': 1}} # 核心运算代码 dict3 = { parent_key: {child_key: child_val / d1[parent_key] for child_key, child_val in child_dict.items()} for parent_key, child_dict in d2.items() }
运行后输出结果和给出的预期结果完全一致。
兼容异常场景的扩展实现
如果需要处理d1中缺失对应父键、或者除数为0的异常场景,可以改用循环写法增加判断逻辑,避免运行报错:
dict3 = {} for parent_key, child_dict in d2.items(): divisor = d1.get(parent_key) # 除数为0或父键不存在时默认返回0 if not divisor: dict3[parent_key] = {child_key: 0.0 for child_key in child_dict} continue dict3[parent_key] = {child_key: child_val / divisor for child_key, child_val in child_dict.items()}
内容的提问来源于stack exchange,提问作者K.W. LEE
相关产品推荐
相关产品推荐

