首页 > 解决方案 > 有没有办法永久添加到 python 中的列表?

问题描述

我想创建一个程序,将我的比赛数据存储在按我的比赛长度排序的列表中(我是一名跑步者)。因此,当我添加它时,它会临时添加,一旦我重新启动代码,它就会删除旧代码。我希望它永久更改代码并永久添加。我的代码:

#All the sub-folders
fivek = []
tenk = []
twomi = []
sixteen = []
eight = []
four = []
two = []
Half = []
Full = []

#choose which folder
distance = input("Length of Race? (5k, 10k, 2mi, 1600, 800, 400, 200, Half, Full)")
if distance == "5k":
    time=str(input("What was your time? (Put date in parenthesis Ex. 20:00(1-1-20))"))
    fivek.append(time)
    print(fivek)

我说得够清楚吗?让我知道我是否太朦胧。

所以像这样使用csv?

import csv

time = []
length = []
place = []

timeResult = input("What was your time?")
lengthResult = input("What was the race length?")
placeResult = input("Where was the race?")

pace.append(placeResult)
time.append(timeResult)
length.append(lengthResult)

with open('times.csv', newline='') as f:
    thewriter = csv.writer(f)
    thewriter.writerow([length, time, place])

标签: pythonlist

解决方案


不是。Python 列表是在内存中创建的对象。Python 脚本启动时内存为空,脚本结束时内存中的对象消失。因此,您需要做的是从永久存储形式(例如磁盘上的文件)中填写您的列表。即您不想修改代码本身以包含您的数据。相反,您的代码从外部源读取数据。

所以你可能想看看这个csv库: https ://docs.python.org/3/library/csv.html 。这使您可以在脚本开始时从磁盘上的文件中读取以最初填充列表。然后,您将条目添加到脚本中的列表中,最后将更新的列表保存回磁盘。表格格式的 csv(逗号分隔值)文件的优点是它是纯文本,因此可以被许多其他软件读取,如果您想检查数据,特别适合在电子表格中打开那样。Pickling 是一种将 Python 对象直接保存到磁盘的方法,但是除了 Python 本身之外,其他任何东西都不能直接读取生成的文件。

最后,您可能会发现将所有数据保存在一个表中很方便,其中一列用于比赛长度,另一列用于比赛时间。这为以后的分析提供了更大的灵活性。在您的代码中,在读取以这种方式格式化的单个 csv 文件后,您将获得一个字典列表,其中每个条目都是一个 Python 字典,它有一个键(比赛长度)和一个值(比赛时间)。


推荐阅读