2

我已经构建了一个这样的字典:

目录是:

{((2, 1), 'South', 1): set([((2, 2), 'South', 1)]), 
((1, 3), 'South', 1): set([((1, 4), 'South', 1)]), 
((5, 3), 'East', 1): set([((4, 3), 'North', 1)]), 
((2, 2), 'South', 1): set([((2, 3), 'East', 1)]),   
((4, 2), 'East', 1): set([((3, 2), 'East', 1)]), 
((1, 1), 'West', 1): set([((2, 1), 'South', 1)])}

我想像这样遍历这本字典:

如果我有((2, 1), 'South', 1)作为键,那么我想提取它的值set([((2,2),'South',1)])并将其作为键并搜索并找到它的值等等......

但我无法为它构造一个函数。我一直只得到一个值,它进入一个无限循环。我想我可能会错误地获取值。有人可以告诉我我该怎么做吗?

4

3 回答 3

1

以下情况如何:

key = ((2, 1), 'South', 1)
while (x.has_key(key)):
    print x[key]
    key = iter(x[key]).next()
于 2012-10-10T07:01:32.533 回答
0

据我了解,您需要什么。尝试这个:

start_pos = ((2, 1), 'South', 1)

d = {...}

visited = set()

def go(pos):
   visited.add(pos)
   for v in d[pos]:
       if v not in visited:
           go(v)

go(start_pos)
于 2012-10-10T06:56:27.637 回答
-1

尝试这个:

def iterate_get_value(my_dict):
    for k,v in my_dict.iteritems():
        if k == ((2, 1), 'South', 1):
            return v

那对你有用吗?

于 2012-10-10T06:52:22.963 回答