三级列表展示

#__author__:Administrator}
#data: 2017/11/10
menu = {
'北京':{
'朝阳':{
'国贸':{
'cicc':{},
'HP': {},
'渣打银行': {},
'cctv': {},
},
'望京':{
'默默':{},
'奔驰':{},
'360':{},
},
'三里屯':{
'优衣库':{},
'apple':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'包子':{},
},
'天通苑':{
'链家':{},
'我爱我家':{},
},
'回龙观':{

},
},
'海淀':{
'五道口':{
'谷歌':{},
'网易':{},
'搜狐':{},
},
'中关村':{
'youku':{},
'iqiyi':{},
'新东方':{},
'汽车之家':{},
'qq':{},
},
},

},
'上海':{
'浦东':{
'陆家嘴':{
'cicc':{},
'高盛':{},
'摩根':{},
},
'外滩':{},
},
'闵行':{},
'静安':{},
},
'山东':{
'青岛':{},
'济南':{},
'德州':{
'乐陵':{
'丁武县':{},
},
'平原县':{},
},
},
}
current_layer = menu#实现动态循环
#parent_layer = menu
parent_layers = []#保存所有父级,最后一个元素永远都是父级
while True:
for key in current_layer:
print(key)
choice = input('>>>').strip()
if choice in current_layer:
#parent_layer = current_layer#记录父层
parent_layers.append(current_layer)#在进入下一层之前,把当前层追加到列表中
#下一次loop,当用户选择b的时候,就可以直接选择列表最后一个值出来
current_layer = current_layer[choice]#改成了子层

elif choice =='b':
#current_layer = parent_layer #把子层轧成父层
if parent_layers:
current_layer = parent_layers.pop()#取出列表的最后一个值,因为他就是列表的最后一个值
else:
print('无此项')
posted @ 2017-11-10 18:41  无敌帅帅头  阅读(507)  评论(0编辑  收藏  举报