我正在为python中的游戏创建一个排行榜,我希望它能够保存它以便我可以在下次打开游戏时检索它。
Leader_board = []
Temp_Leader_board = []
PlayerName = str(No1+No2+No3+No4+No5+No6+No7+No8)
Array = [str(Deaths),PlayerName]
Temp_Leader_board.append(Array)
Leader_board = sorted(Temp_Leader_board, key=lambda player: player[0])
最后一行是将得分从最小到最大排序。
答案 0 :(得分:1)
正如@matusko和@Christian Dean所说,你正在寻找的是序列化,Python有一个内置的模块叫做pickle。就个人而言,由于这似乎是一个更简单的序列化用例,我建议使用cPickle,它与pickle做同样的事情,但速度更快,因为它是用C. See here编写的,用于指导如何使用它们序列化不同类型的数据。
答案 1 :(得分:1)
我简单序列化的首选解决方案是yaml
。它具有人类可读的优点,但缺点是只能序列化简单的数据结构。看起来它在这种情况下可以正常工作:
测试代码:
leader_board = [
[30, 'Player A'],
[10, 'Player B'],
]
import yaml
# save the leader board
with open('LeaderBoard.yml', 'w') as f:
f.write(yaml.dump(leader_board))
# read the leader board from yaml file
with open('LeaderBoard.yml', 'r') as f:
read_leader_board = yaml.load(f.read())
# show yaml format and restored data
print(yaml.dump(leader_board))
print(read_leader_board )
<强>结果:强>
- [30, Player A]
- [10, Player B]
[[30, 'Player A'], [10, 'Player B']]
答案 2 :(得分:0)
最简单的方法是使用pickle
答案 3 :(得分:0)
听起来您正在寻找一种序列化列表的方法,以便将其保存到文件中,然后稍后再回读。对于序列化python对象,可以使用python模块pickle
(reference page)。有关撰写和阅读文件的信息,请查看here。