Python 从内容中查找词典

Python 从内容中查找词典,python,dictionary,grid,maze,Python,Dictionary,Grid,Maze,我试图创建一些东西来证明左手放在墙上穿过迷宫的概念是有效的,因此我制作了一个python 3.6 turtle程序来实现这一点。我知道,这是非常低效的,我是一个初学者,但我的问题是; 一个人如何从字典的内容中找到它的名字 下面是一个例子: place1 = {"coordinates" : (150, 150), "filled_in": False} place2 = {"coordinates" : (100, 100), "filled_in": True} place3 = {"coor

我试图创建一些东西来证明左手放在墙上穿过迷宫的概念是有效的,因此我制作了一个python 3.6 turtle程序来实现这一点。我知道,这是非常低效的,我是一个初学者,但我的问题是; 一个人如何从字典的内容中找到它的名字

下面是一个例子:

place1 = {"coordinates" : (150, 150), "filled_in": False}
place2 = {"coordinates" : (100, 100), "filled_in": True}
place3 = {"coordinates" : (50, 50), "filled_in": True}
turtle position = 50, 50
本质上是这样的

?[“坐标”:(50,50),“填充”=True

我希望能够从字典中的值中找到字典,这样我就可以检查它是否已填写

if (dictionary containing value of "coordinates" : (50, 50))["filled_in"] = False:
    do whatever

我知道我可能把所有内容的格式都弄错了,但提前谢谢你的帮助。

你可以把它们都放在一个字典里,可以按坐标索引:

place1 = {"coordinates" : (150, 150), "filled_in": False}
place2 = {"coordinates" : (100, 100), "filled_in": True}
place3 = {"coordinates" : (50, 50), "filled_in": True}
places = {p["coordinates"]: p for p in [place1, place2, place3]}
然后将其索引:

>>> places[(50, 50)]['filled_in']
True
>>> places[(150, 150)]['filled_in']
False

只需检查字典的
“坐标”
键:

for d in (place1, place2, place3):
    if d['coordinates'] == (50, 50):
        do_something()

我将详细说明@MSeifert的答案。假设您有64个变量,如下所示:

place1, place2, ..., place64
只要替换这个:

places = {p["coordinates"]: p for p in [place1, place2, place3]}
与:


例如,考虑从单独文件中加载坐标。

确实有帮助。现在我面临的问题是有64个字典。正如我所说,格式不好。代替<代码> EVA/COD> >使用<代码>位置= [Loals[]([Nosi] ]用于PosieSistList]中的名称这也是有效的,而且它不那么“邪恶”。但是,这也不是一个好的做法——当有很多口述时,我会选择一种完全不同的方法
places_list = ["place{}".format(num) for num in range(1, 65)]
places64 = eval(str(places_list))
places = {p["coordinates"]: p for p in places64}