python - 如何在python中读取一组值的文本文件并打印这些值
解决方案
你的问题有点不清楚,但你的问题的解决方案可能是这个
import re
regex = re.compile('d1 : (\d+) d2 : (\d+) d3: (\d+)')
with open('file.txt', 'r') as file:
content = file.readlines()
i = 0
objects = {}
for pos, line in enumerate(content):
match = regex.match(line)
if not match:
continue
if pos % 6 == 0:
i += 3
if i > 3:
objects[f'{i-6}-mean'] = sum(objects[f'{i-6}']) / len(objects[f'{i-6}'])
objects[f'{i-5}-mean'] = sum(objects[f'{i-5}']) / len(objects[f'{i-5}'])
objects[f'{i-4}-mean'] = sum(objects[f'{i-4}']) / len(objects[f'{i-4}'])
objects[f'{i-3}'] = []
objects[f'{i-2}'] = []
objects[f'{i-1}'] = []
objects[f'{i-3}'].append(int(match[1]))
objects[f'{i-2}'].append(int(match[2]))
objects[f'{i-1}'].append(int(match[3]))
i += 3
objects[f'{i-6}-mean'] = sum(objects[f'{i-6}']) / len(objects[f'{i-6}'])
objects[f'{i-5}-mean'] = sum(objects[f'{i-5}']) / len(objects[f'{i-5}'])
objects[f'{i-4}-mean'] = sum(objects[f'{i-4}']) / len(objects[f'{i-4}'])
print(objects)
输出
{'0': [472, 475, 477, 477, 477], '1': [998, 992, 991, 991, 991], '2': [367, 365, 367, 367, 367], '0-mean': 475.6, '1-mean': 992.6, '2-mean': 366.6, '3': [1, 2, 3, 4, 477], '4': [998, 992, 991, 991, 991], '5': [367, 365, 367, 367, 367], '3-mean': 97.4, '4-mean': 992.6, '5-mean': 366.6}
如果不是,请详细说明。
推荐阅读
- python - Python - 避免嵌套的“for”循环以提高代码效率
- ansible - 无法在 Ansible 中使用额外变量在字符串列表中传递句子
- python - 动态创建序列号的嵌套列表
- r - 通过将函数应用于向量的每个元素并组合结果来创建数据框
- r - 使用 grep 查找“癌症”但排除“以前的癌症”
- javascript - 使用处理程序返回 Promise
- python - UnicodeDecodeError:“utf-8”编解码器无法解码位置 277 中的字节 0xfa:无效的起始字节
- python - 在多列上使用函数
- javascript - 在 Rails v6 中实现 glightbox 时遇到问题
- ruby-on-rails - 创建 Review Rails 后端/React 前端