从嵌套在Python中的列表中的字典访问键/值

时间:2013-10-22 23:26:13

标签: python list dictionary pygame

我已经学习了一些pygame,将我们基于文本的MUD提升到了一个新的水平。

我发现this tutorial非常有帮助。但是,我想扩展第18章的例子,让所有的绿色实体也移动。

显然,您不能复制/粘贴使白色块自行移动的早期脚本,因为这些只是列表中的矩形而不是字典。所以我想知道如何访问嵌套在列表中的字典中的键/值。

将一些代码放到我的问题中:

矩形如下所示:

badGuy = {'rect':pygame.Rect(300, 100, 50, 50), 'dir':UPLEFT}

在原始代码中,它只是将新的矩形对象附加到列表中:

foods = []
for i in range(20):
    foods.append(pygame.Rect(stuff to make the rectangle)

是否可以执行类似

的操作
foods = []
for i in range(20:
    foods.append(badGuy)

然后访问' rect'和' dir'来自badGuy dict的钥匙?

1 个答案:

答案 0 :(得分:1)

不确定。假设您修复了所有丢失的问题和其他内容,foods将最终显示为20个dict的列表。这是完全合法的,而dict并不关心你是直接从变量,还是从list的中间或其他任何地方获得它。所以,你可以这样做:

print foods[0]['rect']

for food in foods:
    print food['dir']

food = random.choice(foods)
print food['rect']

......等等。