menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
#递归实现
# def threeLM(dic):
# while True:
# for k in dic:print(k)
# key = input('请输入区域:').strip()
# if key =='b' or key =='q':
# return key
# elif key in dic.keys() and dic[key]:
# ret =threeLM(dic[key])
# if ret =='q':
# return 'q'
# threeLM(menu)
#堆栈实现
l = [menu]
while l:
for key in l[-1]:
print(key)
k = input('请输入区域:').strip()
if k in l[-1] and l[-1][k]:
l.append(l[-1][k])
elif k =='b':
l.pop()
elif k =='q':break
else:continue