在游戏的一部分中,我创建了一个用户输入用户名。用户名和用户的分数保存在一个对象中,该对象被腌制到外部文件中,该外部文件中包含其他腌制分数对象。
然后我在UI上有一个按钮,如果点击该按钮,则按降序显示所有玩家的最高分数。
我将文件加载到一个列表中,其中包含我找到的代码here。
Highscores = []
Highscores = pickle.load(open("Highscores.txt", "rb"))
然后我使用冒泡排序对下面显示的对象列表进行排序。
def bubbleSort():
swapOccured = True
while swapOccured == True:
swapOccured = False
for i in Highscores:
if Highscores[i].score > Highscores[i + 1].score:
hold = Highscores[i + 1]
Highscore[i + 1] = Highscores[i]
Highscores[i] = Highscores[i + 1]
swapOccured = True
返回的错误是
for index in Highscores:
TypeError: iteration over non-sequence
我已经查看过类似的其他问题,例如here,但错误是程序循环遍历一个对象而不是循环遍历一个对象列表。我很确定它与示例的错误不一样,我认为可能是加载在带有泡菜的对象列表中但是我被卡住了。
非常感谢任何帮助。
答案 0 :(得分:3)
就像@Id
@Column(name = "roleId", unique = true, nullable = false)
private Integer roleId;
将单个对象转储到文件一样,pickle.dump
从文件中加载单个对象。如果您需要列表,则需要全部加载:
pickle.load