menu = {
'山东':{
'菏泽':{
'同事':{
'萱萱':{},
},
},
'潍坊':{
'青州':{'士官学院'},
},
'青岛':{
'beer':{'chunsheng'}
},
},
'上海':{
'滨海区':{}
},
'河北':{
'石家庄':{
'桥西区':{}
},
'廊坊':{},
'承德':{
'避暑山庄':{}
}
},
'北京':{
'朝阳':{
'大悦城':{},
'世贸天阶':{},
'360':{},
},
'海淀':{
'新东方':{},
'优财':{},
'高顿':{},
'清华':{},
},
'昌平':{
'老男孩':{},
'老婆':{},
},
'顺义':{
'shunyi':{},
'shimen':{
'西辛南区':{'gaotianze'},
},
},
}
}
current_layer = menu #实现动态循环
#parent_layer = menu
parent_layers = [] #保存所有父级,最后一个元素永远都是父亲级
while True:
for key in current_layer:
print(key)
choice = input(">>>:").strip()
if len(choice) == 0:continue
if choice in current_layer:
parent_layers.append(current_layer)#在进入下一层之前,把当前层(也就是下一层的父级)追加到列表中 #也就是下一次的pop,当用户选择B的时候,就可以取出来最后一个值出来。
current_layer = current_layer[choice] #改变成子层
elif choice =="b":
if parent_layers:
current_layer = parent_layers.pop()#取出列表的最后一个值,因为它就是当层的父级。
elif choice =="q":
break
else:
print("无此项")