在Python中列出列表和词典?

时间:2017-02-26 21:49:29

标签: python list dictionary

在我的游戏代码中,用户在网格中移动,如果他们落在宝箱上,他们的硬币收集会增加10倍。然而,一旦你落在同一个宝箱上3次,它就会变成强盗并设置你的硬币收集到0.我努力解决这个问题,因为当用户确定首先有多少值时,很难计算列表中的单个值。这是我目前的代码:

        TreasureCoords[(x,y)] = 0
        Visits = TreasureCoords.get((x,y), None)
        if Visits is None:
            pass # Nothing happens
        elif Visits > 3:
            print("Uh oh there's a bandit! Your coin collection is now 0.")
            CoinCollection = 0
        else:
            print("You have landed on a treasure chest! You can visit it %i more times before it becomes a bandit." % (2 - visits))
            CoinCollection += 10
            TreasureCoords[(x,y)] += 1

然而,当在我的代码中实现时,会发生以下错误: TreasureCoords [(x,y)] = 0 TypeError:list indices必须是整数,而不是元组 我相信这与上述代码使用TreasureCoords作为字典这一事实有关,因为它实际上是一个充满x和y值的列表,其中宝箱所在。我不相信我可以将我的TreasureCoords和BanditCoords更改为字典,因为值是随机设置的,并且值的数量由用户设置,因此我不知道如何设置键或任何东西。我该怎么办?

1 个答案:

答案 0 :(得分:0)

由于元组发生了错误,解决此问题的最佳方法可能是使用字典,因为其余代码看起来甚至不需要更改为更改字典。

事实上,行Visits = TreasureCoords.get((x,y), None)使用的get方法甚至不能在列表上工作,所以这使我认为代码本来就是用于字典。

您实际上可以将新项目添加到字典中:

dict = {"Key1": 1}
dict[(1, 2)] = 42
print(dict[(1, 2)]) # prints 42

您也应该阅读此内容:https://learnpythonthehardway.org/book/ex39.html