一个多级字典的嵌套,输入字典的Key,进入下一个层级,输入b,返回上一层,任何一层输入q,结束。
屌丝方案一:
代码块
menu={
'浙江省':{
'杭州市':{
'拱墅区':{
'杭州西湖':{},
'千岛湖':{},
'西溪湿地':{},
},
'余杭区':{
'公园':{},
'阿里巴巴':{},
'网易':{},
},
'西湖区':{
'娃哈哈':{},
'物产重大':{},
'磐石':{},
},
},
'绍兴市':{
'柯桥区':{
'绍兴西湖':{},
'绍兴千岛湖':{},
'绍兴西溪湿地':{},
},
'越城区':{
'绍兴公园':{},
'绍兴阿里巴巴':{},
'绍兴网易':{},
},
'上虞区':{
'绍兴娃哈哈':{},
'绍兴物产重大':{},
'绍兴磐石':{},
},
},
'台州市':{
'椒江区':{
'台州西湖':{},
'台州千岛湖':{},
'台州西溪湿地':{},
},
'黄岩区':{
'台州公园':{},
'台州阿里巴巴':{},
'台州网易':{},
},
'路桥区':{
'台州娃哈哈':{},
'台州物产重大':{},
'台州磐石':{},
},
},
},
'江苏省':{
'南京市':{
'拱墅区':{
'杭州西湖':{},
'千岛湖':{},
'西溪湿地':{},
},
'余杭区':{
'公园':{},
'阿里巴巴':{},
'网易':{},
},
'西湖区':{
'娃哈哈':{},
'物产重大':{},
'磐石':{},
},
},
'苏州市':{
'柯桥区':{
'绍兴西湖':{},
'绍兴千岛湖':{},
'绍兴西溪湿地':{},
},
'越城区':{
'绍兴公园':{},
'绍兴阿里巴巴':{},
'绍兴网易':{},
},
'上虞区':{
'绍兴娃哈哈':{},
'绍兴物产重大':{},
'绍兴磐石':{},
},
},
'镇江市':{
'椒江区':{
'台州西湖':{},
'台州千岛湖':{},
'台州西溪湿地':{},
},
'黄岩区':{
'台州公园':{},
'台州阿里巴巴':{},
'台州网易':{},
},
'路桥区':{
'台州娃哈哈':{},
'台州物产重大':{},
'台州磐石':{},
},
},
},
}
while True:
for k in menu:
print(k)
choice=input('>:').strip()
if not choice: continue
if choice in menu:
while True:
for k in menu[choice]:
print(k)
choice2 = input('>>:').strip()
if not choice2: continue
if choice2 in menu[choice]:
while True:
print('go to',menu[choice][choice2])
for k in menu[choice][choice2]:
print(k)
choice3 = input('>>>:').strip()
if not choice3: continue
if choice3 in menu[choice][choice2]:
print('go to',menu[choice][choice2][choice3])
elif choice3=='b':
break
elif choice3=='q':
exit('bye')
else:
print('节点不存在')
elif choice2=='b':
break
elif choice2 == 'q':
exit('bye')
else:
print('节点不存在')
文艺青年版本:
代码块
menu={
'浙江省':{
'杭州市':{
'拱墅区':{
'杭州西湖':{},
'千岛湖':{},
'西溪湿地':{},
},
'余杭区':{
'公园':{},
'阿里巴巴':{},
'网易':{},
},
'西湖区':{
'娃哈哈':{},
'物产重大':{},
'磐石':{},
},
},
'绍兴市':{
'柯桥区':{
'绍兴西湖':{},
'绍兴千岛湖':{},
'绍兴西溪湿地':{},
},
'越城区':{
'绍兴公园':{},
'绍兴阿里巴巴':{},
'绍兴网易':{},
},
'上虞区':{
'绍兴娃哈哈':{},
'绍兴物产重大':{},
'绍兴磐石':{},
},
},
'台州市':{
'椒江区':{
'台州西湖':{},
'台州千岛湖':{},
'台州西溪湿地':{},
},
'黄岩区':{
'台州公园':{},
'台州阿里巴巴':{},
'台州网易':{},
},
'路桥区':{
'台州娃哈哈':{},
'台州物产重大':{},
'台州磐石':{},
},
},
},
'江苏省':{
'南京市':{
'拱墅区':{
'杭州西湖':{},
'千岛湖':{},
'西溪湿地':{},
},
'余杭区':{
'公园':{},
'阿里巴巴':{},
'网易':{},
},
'西湖区':{
'娃哈哈':{},
'物产重大':{},
'磐石':{},
},
},
'苏州市':{
'柯桥区':{
'绍兴西湖':{},
'绍兴千岛湖':{},
'绍兴西溪湿地':{},
},
'越城区':{
'绍兴公园':{},
'绍兴阿里巴巴':{},
'绍兴网易':{},
},
'上虞区':{
'绍兴娃哈哈':{},
'绍兴物产重大':{},
'绍兴磐石':{},
},
},
'镇江市':{
'椒江区':{
'台州西湖':{},
'台州千岛湖':{},
'台州西溪湿地':{},
},
'黄岩区':{
'台州公园':{},
'台州阿里巴巴':{},
'台州网易':{},
},
'路桥区':{
'台州娃哈哈':{},
'台州物产重大':{},
'台州磐石':{},
},
},
},
}
current_layer=menu
layer=[]
while True:
for k in current_layer:
print(k)
choice= input('>>:').strip()
if not choice:continue
if choice in current_layer:
layer.append(current_layer)
# print(layer)
current_layer=current_layer[choice]
elif choice =='b':
if len(layer)!=0:
current_layer=layer.pop()
else:
print("达到顶层")
别跑,点个赞再走






网友评论