繁体   English   中英

如何找到字典中列表元素的平均值?

[英]How to find the average of the list elements within a dictionary?

sweets = {'cadbury': [180,90], 'candy': [190],
          'milk chocolate': [150, 160], 'dark chocolate': [100],
          'white chocolate': [180], 'ice cream': [122]}

dict sweets 有不同的键和列表值对。 我想得到你的帮助来查找值列表中数字的平均值,并返回平均值最高的键为 output

您可以使用statistics.mean计算平均值,并使用自定义键max来获取具有最大平均值的键:

sweets = {'cadbury': [180,90], 'candy': [190], 'milk chocolate': [150, 160], 'dark chocolate': [100], 'white chocolate': [180],
 'ice cream': [122]}

from statistics import mean
max(sweets, key=lambda x: mean(sweets[x]))

Output: 'candy'

使用 numpy 您可以尝试:

d = {x:np.mean(sweets[x]) for x in sweets}

返回:

{'cadbury': 135.0,
 'candy': 190.0,
 'dark chocolate': 100.0,
 'ice cream': 122.0,
 'milk chocolate': 155.0,
 'white chocolate': 180.0}

并获得钥匙:

max(d, key=d.get)

返回:

'candy'

编写一个 for 循环来迭代 dict 中的每个键值。 然后编写内部循环来计算每个键的平均值。 首先必须将最大平均值设置为最小浮点值,然后如果值大于最小值将其设置为最大平均值,直到循环结束。

你也可以这样做:

out = max(sweets.items(), key=lambda x: (sum(x[1])/len(x[1]) if x[1] else 0))[0]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM