如何在python中访问平面列表并对第二个值执行数学函数

2024-05-14 06:45:36 发布

您现在位置:Python中文网/ 问答频道 /正文

这是学校的作业。我有一个文本文件,其中包含以下缩写列表,每个条目在一行上。第一个条目是日期,pip之后的第二个条目是股市收盘价,文件中大约有365个条目。你知道吗

8/28/2018|26064.01953
8/29/2018|26124.57031
8/30/2018|25986.91992

使用下面的代码,我将数据拆分为一个列表列表,其中日期和值是分开的。你知道吗

import os
import math
import statistics
def main ():
    infile = open('DJI.txt', 'r')
    values = infile.read()
    infile.close()
    values=values.split("\n")
    values=[value.split("|") for value in values]
    print(values)
    avg = sum([float(l[1]) for l in values])/len(values)
main()  

这将产生以下输出

[['8/28/2018', '26064.01953'], ['8/29/2018', '26124.57031'], ['8/30/2018', '25986.91992'],

Avg行给出了以下错误:IndexError:list index超出范围,但是当我将1切换到0时,它给出了一个不同的错误,即无法将字符串转换为2018年8月28日的浮点值

我的任务是创建一个计算 全年平均收盘价。 月平均收盘价 最高收盘价和发生的日期。 最低收盘价和发生日期。 将价格从最低到最高排序,并将排序后的列表写入一个名为DJI\u sorted的新文本文件。你知道吗

我在如何访问列表中的第二个值以对文件执行统计时遇到了问题。我也不确定如何编写一个代码,将列表从最低到最高排序,以及每个月的平均收盘价,而不是整个文件。你知道吗

非常感谢你的帮助。你知道吗


Tags: 文件代码import列表for排序valuemain
2条回答
def main():
    infile = open('DJI.txt', 'r')
    values = infile.read()
    infile.close()
    values = values.split("\n")
    values = [value.split("|") for value in values if len(value.split("|")) > 1]
    print(values)
    avg = sum([float(l[1]) for l in values]) / len(values)
    print("   -avg    ", avg)
main()

最后可能有一条空线。 将行计算平均值修改为

avg = sum([float(x[1]) for x in values if len(x) > 1])/len(values)

相关问题 更多 >