Как я могу сохранить список, созданный в куске кода, чтобы я мог использовать его снова, когда снова использую тот же код? - PullRequest
0 голосов
/ 12 января 2019

Как я могу создать список, который я могу добавить в конце фрагмента кода, и который я смогу использовать и добавить в следующий раз при выполнении кода?

Итак, я выполняю NEA для GCSE Computer Science, и мне нужно создать эту игру и сохранить 5 лучших результатов во внешнем файле. Мой план состоит в том, чтобы поместить все оценки из игры в список, затем отсортировать список так, чтобы оценки были в порядке убывания, а затем отобразить первые 5 элементов списка во внешнем файле. Я не могу создать список до того, как я введу счет, потому что он будет пустым, когда я снова выполню код, и я не могу ничего добавить в список, который я еще не создал!

    Top5=[]    
    Top5.append([name, score])
    #I can’t use this because it will wipe the list every time I use the code


    Top5.append([name, score])
    #I can’t use this because there is no list created to add to

По сути, мне нужен список, к которому я могу добавлять вещи каждый раз, когда пробегаю код. Как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 12 января 2019

Сохраните результаты в файле и прочитайте файл при запуске. Если файл еще не существует, используйте пустой список.

import json

try:
    with open("highscores.json") as f:
        top5 = json.load(f)
except:
    top5 = []

# play game

if score > top5[-1]['score']:
    # Add new score to high scores
    top5.append({"player": name, "score": score})
    top5 = sorted(top5, key = lambda e: e['score'], reverse = True)[:5]

with open("highscores.json", "w") as f:
    json.dump(top5, f)
0 голосов
/ 12 января 2019

вам нужно где-то сохранить данные в файл. Вы можете использовать рассол, как указано в этом ответе :

import pickle

name = 'name'
score = 'score'
top5 = []
top5.append([name, score])

with open('filename.pickle', 'wb') as handle:
    pickle.dump(top5, handle, protocol=pickle.HIGHEST_PROTOCOL)

with open('filename.pickle', 'rb') as handle:
    b = pickle.load(handle)
    print(b) # b is your original object top5
0 голосов
/ 12 января 2019

Поскольку вы должны перечислить лучших бомбардиров во внешнем файле, просто создайте внешний текстовый файл и читайте / записывайте из этого файла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...