在python中如何在多个点拆分值

2024-06-13 07:06:48 发布

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

这是一份学校作业,我有一个文本文件,包含以下数据:

8/28/2018|26064.01953
8/29/2018|26124.57031
8/30/2018|25986.91992
8/31/2018|25964.82031
9/4/2018|25952.48047
9/5/2018|25974.99023
9/6/2018|25995.86914

此格式的一行中有许多条目。我的任务是创建一个导入文本文件的应用程序,并完成以下操作以显示给用户。你知道吗

  • 全年平均收盘价。你知道吗
  • 月平均收盘价
  • 最高收盘价和发生的日期。你知道吗
  • 最低收盘价和发生日期。你知道吗
  • 将价格从最低到最高排序,并将排序后的列表写入名为DJI_Sorted的新文本文件。你知道吗
def main ():
    infile = open('DJI.txt', 'r')
    values = infile.read()
    infile.close()
    values = (values.strip() for value in values.split("|") for value in values.split("/"))
    print(values) 
main() 

运行此代码时出现以下错误:

<generator object main.<locals>.<genexpr> at 0x028F90B0>

我正在尝试将8/28/2018|26064.01953拆分为一个包含8/28/201823031.0193的列表,以便可以对值进行统计和计算。非常感谢你的帮助。你知道吗


Tags: 数据in列表for排序valuemain作业
1条回答
网友
1楼 · 发布于 2024-06-13 07:06:48

这似乎不是一个错误,而是一个python Repr(表示)。你知道吗

原因是您使用的是生成器表达式。打印生成器表达式将打印生成器的repr,而不是值。你知道吗

改变

values = (values.strip() for value in values.split("|") for value in values.split("/"))

values = [values.strip() for value in values.split("|") for value in values.split("/")]

然而,这似乎并不像你想要的那样分裂。我建议简化并分两步进行。首先拆分空格(“”)上的值以获得单个值的列表。然后在“|”上拆分,得到一个列表列表,其中内部列表是日期/值对。你知道吗

    values=values.split(" ")
    values=[value.split("|") for value in values]

相关问题 更多 >