# 简单吧简单吧,用动态变量不停的改变进行遍历 menu = { "北京":{ "朝阳":{ "国贸":{ "CICC":{}, "HP":{}, "CCTV":{}, }, "望京":{ "陌陌":{}, "奔驰":{}, ":{}, }, "三里屯":{ "优衣库":{}, "apple":{}, } }, "昌平":{ "沙河":{ "老男孩":{}, "阿泰包子":{}, }, "天通苑":{ "链家":{}, "我爱我家":{}, }, "回龙观":{}, }, "海淀":{ "五道口":{ "谷歌":{}, "网易":{}, "Sohu":{}, "Sogo":{}, "快手":{}, }, "中关村":{ "youku":{}, "Iqiyi":{}, "汽车之家":{}, "新东方":{}, "腾讯":{}, }, }, }, "上海":{ "浦东":{ "陆家嘴":{ "CICC":{}, "高盛":{}, "摩根":{}, }, "外滩":{}, }, "闵行":{}, "静安":{}, "":{}, }, "山东":{ "济南":{}, "德州":{ "乐陵":{ "顶乌镇":{}, "城区":{}, }, "平原":{}, }, "青岛":{}, }, } 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) #在进下一层之前把当前层进行尾部追加,即下一层的父亲籍 current_layer = current_layer[choice] #将要被遍历的字典范围根据用户输入进行缩减范围 elif choice == "b": if parent_layers: current_layer = parent_layers.pop()#进行最后一个的弹出并赋值返回父亲层 else: print("无此项")