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

如何在python中访问平面列表并对第二个值执行数学函数,python,python-3.x,list,Python,Python 3.x,List,这是学校的作业。我有一个文本文件,其中包含以下缩写列表,每个条目在一行上。第一个条目是日期,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'

这是学校的作业。我有一个文本文件,其中包含以下缩写列表,每个条目在一行上。第一个条目是日期,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_sorted的新文本文件

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


非常感谢您的帮助。

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

avg=如果lenx>1,则x值的总和[floatx[1]/lenx值
你能共享文本文件吗?有没有办法附加文件,或者你只是想发布数据?是的,你可以上传文本文件。你的文本文件可能不一致。您应该共享文本文件以用于重现问题。文本文件:
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()