如何在python 2中重置字典

时间:2018-09-11 13:17:13

标签: python python-2.7 dictionary

好的,这个问题有点难以解释,但是我会尽力去问。因此,基本上我有一个带有房间名称的字典,每次运行游戏时,字典都会随机播放并输出一个随机的房间,如果您击败了房间,您将得到一个分数。如果您打败每个房间,您将进入老板级别。基本上,每次您打败一个房间时,房间都会从字典中删除,因此您不必重播房间。但是,如果您死了,那么我希望它能够使字典重设,并且基本上整个游戏重设。看,如果我死了,然后选择重新开始,该房间已经从字典中删除,因此我无法重播它。有什么方法可以让我每次死后重设字典吗?

1 个答案:

答案 0 :(得分:0)

Python词典不保留历史记录,当您从字典中删除键时,以后将无法对其进行“重置”。您只需重新创建字典或先创建副本

要执行任一操作,您需要

  • 将字典的定义放入函数中,每次需要启动时,都调用该函数以再次创建字典。
  • 或在每次启动游戏时使用dict.copy()创建一个副本,因此您可以编辑新字典。从副本中删除密钥,而不是原始密钥。

我个人不会编辑字典。我会创建一个所有房间名称(字典的键)的 list ,然后将这个列表洗牌一次,并在每次需要随机房间时从中取最后一个值,用{{ 1}}和random.shuffle()

这有两个优点:

  • 无需再创建字典。现在,您将创建一个新列表。 (没有那么大的优势)。基本上就像上面的“先创建副本”选项一样,但是副本较小。
  • 您只需要洗一次即可。随机排列的列表也为您提供了随机排列的房间,并确保您也不会重复。列表的顺序和 stay 乱序排列,而字典则没有。

看起来像这样:

list.pop()