python 字典实现多级菜单 --- 再手动写一遍
menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{}, }, '上地':{ '百度':{}, }, }, '昌平':{ '沙河':{ '老男孩':{}, '北航':{}, }, '天通苑':{}, '回龙观':{}, }, '朝阳':{}, '东城':{}, }, '上海':{ '闵行':{ "人民广场":{ '炸鸡店':{} } }, '闸北':{ '火车战':{ '携程':{} } }, '浦东':{}, }, '山东':{}, } layer = [menu,] #使用列表记录当前位置,当前位置就是-1 while True: current_layer = layer[-1] #当前位置 for i in current_layer: print(i) choice = input("请输入[b返回上层,q退出]:") if choice in current_layer: #判断输入 if not current_layer[choice]: #下层没数据返回提示 print("没数据到底啦!") else: layer.append(current_layer[choice])#下层有数据,将下层数据加入到layer,下次循环current_layer就会变成choice子节点。 elif choice == "b": if len(layer) == 1: #顶层 print("到顶了!") else: layer.pop() #返回上层,删除当前的layer[-1],下次循环current_layer变成上层 elif choice == "q": break else: print("输入有误!!!")
使用一个列表记录当前的位置,方法比较巧妙,以后有这种字典嵌套多层需要操作的可以借鉴下思路