Python:遇到密钥时更改字典密钥的值

时间:2017-12-05 13:42:44

标签: python dictionary

我正在制作一个特殊版本的垄断作为我学校的作业。它被称为特朗普模式。 cpu生成2到12之间的随机数作为骰子的表示。每个可购买的地方都是在你降落时购买的,因为你有无限的钱。它需要运行几次并计算购买整个电路板所需的平均转弯量。

我们需要使用包含所有值和位置的字典。我试图找到一种方法,每当我落在那个位置时我都可以改变键的值,但我无法弄清楚如何。

beurt = 0
totaal = 0
while totaal < 40: 
    worp = throw()
    piece.move(worp)
    print("Na worp {}: {}, {}".format(beurt, board.names[piece.location], board.values[piece.location]))
    totaal = totaal + worp 
    beurt += 1

这是移动作品的代码。 (while循环设置为40,因为在我的测试中我希望他在一轮之后停止)

for key, value in monopoly.monopolyData.dictionary.items() :
    print (key, value)

我有这个代码打印出我的所有值和键,但我不知道如何更改值......

1 个答案:

答案 0 :(得分:0)

解决问题的最简单方法可能是使用pop,默认值为0。这将从字典中删除当前字段及其值,如果已访问该字段,则返回0。删除该字段而不是将其设置为0,这样做的好处是您可以使用while <your_dict>循环,直到访问过每个字段。

简化示例:

MAX = 20
values = {i: 40 for i in range(MAX)}
position = 0
while values:
    dice = randint(1, 6) + randint(1, 6)
    position = (position + dice) % MAX
    print("pos: {}, val: {}".format(position, values.pop(position, 0)))