Python如何循环遍历字典嵌套结构计算所有矩形面积总和
实现方法
你现有代码只通过[0]取了dimensions列表的第一个元素,所以只能算出第一组数据的面积。要批量处理所有条目并累加总面积,直接遍历整个dimensions列表即可,哪怕列表包含上百组数据,该逻辑的运行效率也完全满足需求。
方法1:基础for循环(可读性强,适合新手)
逻辑非常直白:先初始化总面积变量为0,逐一遍历每一组尺寸,计算单块矩形面积后累加到总面积变量中即可。
data = { "shape" : "rectangle", "dimensions" : [ {"length" : 15, "breadth": 20}, {"length" : 20, "breadth": 10} ] } total_area = 0 # 遍历所有尺寸条目 for dim in data["dimensions"]: # 计算当前矩形面积 area = dim["length"] * dim["breadth"] # 累加到总面积 total_area += area print(total_area)
运行你提供的示例数据,输出结果为500,即1520 + 2010 = 300 + 200的正确累加值。
方法2:精简生成器写法
如果想要更短的代码,可以直接配合Python内置的sum()函数,用生成器表达式一步算出结果:
total_area = sum(dim["length"] * dim["breadth"] for dim in data["dimensions"]) print(total_area)
可选:异常数据容错
如果你的实际数据可能存在缺失length或breadth字段的异常条目,可以用字典的get()方法设置默认值为0,避免运行时报KeyError:
total_area = 0 for dim in data["dimensions"]: # 字段缺失时默认取0,不会中断程序 length = dim.get("length", 0) breadth = dim.get("breadth", 0) total_area += length * breadth
内容的提问来源于stack exchange,提问作者Mirkyly
相关产品推荐
相关产品推荐

