我构建了一个这样的词典:
目录是:
{((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)])
并将其作为键并搜索并查找其值等等......
但我无法为此构建一个函数。我不断得到一个值,它进入无限循环。我想我可能会错误地获取值。有人可以告诉我如何做到这一点吗?
答案 0 :(得分:1)
以下内容如何:
key = ((2, 1), 'South', 1)
while (x.has_key(key)):
print x[key]
key = iter(x[key]).next()
答案 1 :(得分: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)
答案 2 :(得分:-1)
试试这个:
def iterate_get_value(my_dict):
for k,v in my_dict.iteritems():
if k == ((2, 1), 'South', 1):
return v
这对你有用吗?