python - 如何在 Python 中的 dict 中找到值数组的平均值?
问题描述
我有一个这样的字典项目:
{'XYZ': [30.34, 27.46, 28.49, 22.35, 24.73, 33.96, 31.18, 30.0, 40.17, 38.22, 33.76, 21.28, 24.63, 27.47, 22.85, 20.45, 6.5, 0.56, 0.97, -7.64, 12.73, 10.69, 9.43, -32.22, -35.82, 16.92, 11.77, 4.16, 28.79, 19.65, 36.54, 34.31, 49.43, 37.18, 32.89, 22.99]}
我有 2 个问题;
一个。我想检查您在上面看到的值数组中的前 5 个值是否都大于 11。如果是,我希望将 XYZ 添加到新的字典中。
湾。我想检查您在上面看到的值数组中的前 5 个值的平均值是否高于 11。如果是,我想将 XYZ 和平均值添加为字典。
在每种情况下,如果值不可用或为负数,我应该忽略它。
你能指导我完成这个吗?由于我的 dict 的值是一个数组,我不知道处理这个问题的有效方法。
谢谢!
解决方案
试试这样:
d={'XYZ': [30.34, 27.46, 28.49, 22.35, 24.73, 33.96, 31.18, 30.0, 40.17, 38.22, 33.76, 21.28, 24.63, 27.47, 22.85, 20.45, 6.5, 0.56, 0.97, -7.64, 12.73, 10.69, 9.43, -32.22, -35.82, 16.92, 11.77, 4.16, 28.79, 19.65, 36.54, 34.31, 49.43, 37.18, 32.89, 22.99]}
new_dict = {}
if all(x>11 for x in d['XYZ'][:5]):
new_dict['XYZ'] = d['XYZ']
elif [sum(d['XYZ'][:5])/5 for x in d['XYZ'][:5]][0]>11:
new_dict['XYZ'] = sum(d['XYZ'][:5])/5
print(new_dict)
可以进行列表切片,获取前 n 个元素,然后all()
使用生成器表达式检查第一个条件sum()/5
以获得平均值
推荐阅读
- node.js - Terser 丑化了 Node.js 环境中的 process.env,使其无法使用
- rest - 在rest api body中定义“外键”元素时的命名约定
- java - 字符串索引超出范围:0 在 Spring Boot 中使用 RedirectAttributes 时出错
- formatting - 更改 PyCharm 中 Black 插件的 88 个字符限制
- javascript - 在动态创建的 AJAX 元素上使用 $(window) 进行事件绑定
- http - HTTP Chrome 请求中的 CRLF
- r - 响应多个按钮的闪亮模态对话框
- javascript - API 调用后撤消 preventDefault()
- amazon-web-services - Amazon MQ 无法在 CloudWatch 中发布日志
- sql - 对 sql-server 表中的每一行使用序列