優化low的三級菜單http://blog.51cto.com/000011211684/1980529,
以下內容是參考python學習視頻整理。
#!/usr/bin/env python
#Author:Li QW
region_data={
'china':{
'beijing':{
'昭陽區':['中手遊','萬家娛樂'],
'五環內':['長城','故宮']
},
'nanjing':{
'建鄴區':['奧體中心','南京眼'],
'鼓樓區':['南京師範','南藝']
},
'shenzhen':{
'龍華新區':['百貨','腸粉'],
'福田區':['中康路','南京路']
},
},
'USA':{
'舊金山':{
'1':['11','111'],
'2':['22','222']
},
'硅谷':{
},
'紐約':{
},
}
}
level=[]
while True:
for info in region_data:
print(info)
choice=input("Input choice >>> ")
if choice == "b":
if len(level)==0:break #當列表爲空就直接退出循環
region_data=level[-1] #將父值,賦值給當前列表
level.pop() ##記得刪除(pop默認移除最後一個元素,並返回)
if len(choice) ==0 or choice not in region_data :continue #當輸入值爲空或者不存在,重新循環
level.append(region_data) #精華部分1:讓記得老子是誰,方便退出。
region_data=region_data[choice] #精華部分2:把子菜單賦值給列表,方便進入下一層(記錄當前位置,重新賦值給info,達到打印下一層目的)