将列表值赋值给字典并实现城市数值统计及省份总值求和的问题
城市及省份维度数值求和实现方案
修正城市求和逻辑并实现省份求和
你原有代码中存在未定义变量list1的笔误,这里直接提供更简洁的实现逻辑,同时覆盖城市、省份两个维度的求和需求:
city_value = [["Edinburgh",100],["Manchester",100],["London",100],["Manchester",100]] province_dict = {"England":["Manchester","London","Exeter"], "Scotland":["Edinburgh","Glasgow","Dundee"]} # 1. 统计每个城市的数值总和 city_sum_dict = {} for city, val in city_value: city_sum_dict[city] = city_sum_dict.get(city, 0) + val print("城市维度总和:", city_sum_dict) # 2. 统计每个省份的数值总和 province_sum_dict = {} for province, cities in province_dict.items(): # 累加当前省份所有下辖城市的数值,无统计数据的城市默认按0计算 province_total = sum(city_sum_dict.get(city, 0) for city in cities) province_sum_dict[province] = province_total print("省份维度总和:", province_sum_dict)
运行输出结果
城市维度总和: {'Edinburgh': 100, 'Manchester': 200, 'London': 100} 省份维度总和: {'England': 300, 'Scotland': 100}
注:如果需要对省份下辖没有统计数据的城市做特殊处理,修改city_sum_dict.get(city, 0)的第二个参数即可,该参数为找不到对应城市时的默认取值。
内容的提问来源于stack exchange,提问作者Joseph Z
相关产品推荐
相关产品推荐

