1 menu = { 2 '北京':{ 3 '朝阳':{ 4 '国贸':{ 5 'CICC':{}, 6 'HP':{}, 7 '渣打银行':{}, 8 'CCTV':{}, 9 },10 '望京':{11 '陌陌':{},12 '奔驰':{},13 '360':{},14 },15 '三里屯':{16 '优衣库':{},17 'apple':{},18 },19 },20 '昌平':{21 '沙河':{22 '老男孩':{},23 '阿泰包子':{},24 },25 '天通苑':{26 '链家':{},27 '我爱我家':{},28 },29 '回龙观':{},30 },31 '海淀':{32 '五道口':{33 '谷歌':{},34 '网易':{},35 '搜狐':{},36 '搜狗':{},37 '快手':{},38 },39 '中关村':{40 '优酷':{},41 '爱奇艺':{},42 '汽车之家':{},43 '新东方':{},44 '腾讯':{},45 },46 },47 },48 '上海':{49 '浦东':{50 '陆家嘴':{51 'CICC':{},52 '高盛':{},53 '摩根':{},54 },55 '外滩':{},56 },57 '闵行':{},58 '静安':{},59 },60 '山东':{61 '济南':{},62 '青岛':{},63 '德州':{64 '乐陵':{65 '丁务镇':{},66 '城区':{},67 },68 '平原县':{},69 },70 },71 }72 current_layer = menu #实现动态循环73 parent_layers = [] #保存所有父集,最后一个元素永远都是父亲集74 while True:75 for key in current_layer:76 print(key)77 choice = input('>>>:').strip()78 if len(choice) == 0:continue79 if choice in current_layer:80 parent_layers.append(current_layer) #在进入下一层之前,把当前层追加到列表中,当用户选择b的时候就可以取列表的最后一个元素出来81 current_layer = current_layer[choice] #改成了子层82 elif choice == 'b':83 if parent_layers:84 current_layer = parent_layers.pop() #取出列表的最后一个值,它就是当前层的父亲集85 else:86 print('无此项')