【发布时间】:2017-09-23 17:43:01
【问题描述】:
我在遍历整个字典以对键中值的每个元素进行简单的汇总统计(平均值)时遇到问题。
我的字典由数字列表的键和值组成:
test_dict={'NJ':[20,50,70,90,100],'NY':[10,3,0,99,57],'CT':[90,1000,2,3.4,5]}
我知道我可以访问每个键的第一个值,例如,通过执行以下操作,但是我在明显的下一步添加另一个 for 循环以遍历值中的所有元素时遇到了麻烦。
location1=[element[0] for element in test_dict.values()]
location1_avg=sum(location1)/len(location1)
我的最终目标是拥有一个以标签为键的字典(位置 1...i)以及该位置跨州的平均值。所以第一个键值是 Location1: 40,依此类推。
我有以下尝试,但错误消息是“列表索引超出范围”,我不知道在这种情况下如何正确迭代。
for element in test_dict.values():
avg=list()
for nums in element[i]:
avg[i]=sum(element[i][nums])/len(element[i][nums])
为每个请求添加所需的输出
soln_dict={'Location1':40,'Location2':351,'Loction3':24,'Loction4':43.24,'Loction5':54}
感谢您的帮助!
【问题讨论】:
-
您能否展示给定
test_dict的结果? -
@Jean-FrançoisFabre 我怀疑 40 应该是 20、10 和 90 的平均值,因此所需的结果可能是 5 个数字的列表,而不是具有 3 个键的字典。跨度>
-
你是对的 - 所需的输出是一个包含五个键值对的字典。第一个是位置 1:40
标签: python loops dictionary