keys = ['a', 'a', 'b', 'c']
values = [6, 2, 3, 4]
dic = {i:[[], 0] for i in keys}
for k, v in zip(keys, values):
dic[k][0].append(v)
dic[k][1]+=1
for k, v in dic.items():
dic[k][0] = sum(dic[k][0])/len(dic[k][0])
print(dic)
keys = ['a', 'a', 'b', 'c']
values = [6, 2, 3, 4]
out = {}
for k, v in zip(keys, values):
out.setdefault(k, []).append(v)
out = {key: sum(value) / len(value) for key, value in out.items()}
print(out)
印刷品:
{'a': 4.0, 'b': 3.0, 'c': 4.0}
如果要计算密钥数,可以执行以下操作,例如:
out = {}
for k, v in zip(keys, values):
out.setdefault(k, []).append(v)
out = {key: (sum(value) / len(value), len(value)) for key, value in out.items()}
print(out)
印刷品:
{'a': (4.0, 2), 'b': (3.0, 1), 'c': (4.0, 1)}
其中,值的第二个元素是键的计数
使用itertools的解决方案(如果键已排序):
keys = ['a', 'a', 'b', 'c']
values = [6, 2, 3, 4]
from itertools import groupby
from statistics import mean
out = {}
for k, g in groupby(zip(keys, values), lambda k: k[0]):
out[k] = mean(v for _, v in g)
print(out)
计算每个键的平均值和频率
dic = {key: [avg, frequency]}
输出
一个简单的解决方案(感谢@DeepSpace提供dict理解建议):
印刷品:
如果要计算密钥数,可以执行以下操作,例如:
印刷品:
其中,值的第二个元素是键的计数
使用
itertools
的解决方案(如果键已排序):印刷品:
相关问题 更多 >
编程相关推荐