三级登陆 @1 省市县乡四级 @2 可以返回上一级 @3可以立即退出

本文通过一个具体的Python代码实例,展示了如何使用嵌套字典来模拟菜单导航系统。该系统允许用户通过输入来浏览多级字典结构,并支持向上返回的功能。
 1 #!coding: utf-8
 2 menu={
 3   '河北':{
 4            '邯郸':{
 5                     '涉县':{
 6                              '偏店':{},
 7                              '井店':{}
 8                            },
 9                     '武安':{
10                              '武安某镇1':{},
11                              '武安某镇2':{}
12                            }
13                    },
14            '石家庄':{
15                     '庄县1':{
16                               '庄县1某镇1':{},
17                               '庄县1某镇2':{}
18                             },
19                     '庄县2':{
20                               '庄县2某镇1':{},
21                               '庄县2某镇2':{}
22                             }
23                     }
24         }
25                                         ,
26   '北京':{
27            '西城区':{
28                    '菜市口':{
29                             '真功夫':{},
30                             '新网':{}
31                             },
32                    '宣武门':{
33                             '移动网':{},
34                             '地铁站':{}
35                             }
36                    },
37            '海淀区':{}
38 
39   '北京':{
40            '西城区':{
41                    '菜市口':{
42                             '真功夫':{},
43                             '新网':{}
44                             },
45                    '宣武门':{
46                             '移动网':{},
47                             '地铁站':{}
48                             }
49                    },
50            '海淀区':{}
51 
52      },
53   '山西':{}
54 }
55 current_layer = menu     #动态变量
56 parrent_layers= []      
57 while True:
58   for key in current_layer:
59     print key                  #1----将整个大的列表中键打印出,河北,北京和山西;2----打印出邯郸  石家庄  3----打印出涉县,武安 4----打印出,偏店,井店
60   choice = raw_input(">>>:").strip()   1----例如选择河北,choice=河北     2------邯郸     3------涉县  4------偏店
61   if choice in current_layer:
62     parrent_layers.append(current_layer) #1----parrent_layers现在是原来大的列表;  2---加上邯郸,石家庄    3---加上涉县  武安 4-----加上偏店,井店  -------关键处,一级一级返回;
63     current_layer = current_layer[choice] #1---这步current_layer将成为邯郸,石家庄;2---成为涉县,武安;   3----成为偏店,井店  4----无内容啦
64   elif choice == 'b':  #定义的返回上一级;
65     if parrent_layers:
66       current_layer = parrent_layers.pop()  #pop的用法很好,从末尾到首,一次pop掉;
67   elif choice == 'q':
68     break
69   else:
70     print "无此项"

 

转载于:https://www.cnblogs.com/lixinliang/p/8284649.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值