menu = { '山东':{ '菏泽':{ '同事':{ '萱萱':{}, }, }, '潍坊':{ '青州':{'士官学院'}, }, '青岛':{ 'beer':{'chunsheng'} }, }, '上海':{ '滨海区':{} }, '河北':{ '石家庄':{ '桥西区':{} }, '廊坊':{}, '承德':{ '避暑山庄':{} } }, '北京':{ '朝阳':{ '大悦城':{}, '世贸天阶':{}, '360':{}, }, '海淀':{ '新东方':{}, '优财':{}, '高顿':{}, '清华':{}, }, '昌平':{ '老男孩':{}, '老婆':{}, }, '顺义':{ 'shunyi':{}, 'shimen':{ '西辛南区':{'gaotianze'}, }, }, }}current_layer = menu #实现动态循环#parent_layer = menuparent_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("无此项")
来源:https://www.cnblogs.com/dazhupeiqi/p/11316866.html