三级菜单

1.查找三级菜单的内容:

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车战': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}

程序:

l=[menu]#将整个字典放进列表   [ 字典 ]
while l:
    for k in l[-1]:#循环一个字典  显示的是字典的键,l[-1]是整个字典
        print(k)
    key=input('>>>')
    if key.upper()=='B':
        l.pop()
    elif key.upper()=="Q":
        l.clear()
    elif l[-1].get(key):#如果输入的是北京,get的是北京的键值对,
        l.append(l[-1].get(key))#这里l[-1]是把拿到的键值对添加在列表的最后一位,之前的还是不变的
        print(l[-1])
        print(l)

  

结果是:

F:\pycharmproject\venv\Scripts\python.exe F:/pycharmproject/新建文件夹/day0327/作业/三级菜单demo.py
北京
上海
山东
>>>北京
l[-1] {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}
l [{'北京': {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}, '上海': {'闵行': {'人民广场': {'炸鸡店': {}}}, '闸北': {'火车战': {'携程': {}}}, '浦东': {}}, '山东': {}}, {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}]
海淀
昌平
朝阳
东城
>>>昌平
l[-1] {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}
l [{'北京': {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}, '上海': {'闵行': {'人民广场': {'炸鸡店': {}}}, '闸北': {'火车战': {'携程': {}}}, '浦东': {}}, '山东': {}}, {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}, {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}]
沙河
天通苑
回龙观
>>>沙河
l[-1] {'老男孩': {}, '北航': {}}
l [{'北京': {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}, '上海': {'闵行': {'人民广场': {'炸鸡店': {}}}, '闸北': {'火车战': {'携程': {}}}, '浦东': {}}, '山东': {}}, {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}, {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, {'老男孩': {}, '北航': {}}]
老男孩
北航
>>>北航
老男孩
北航

2.北京地铁信息三级菜单:

菜单:

china_ditie = {
    "北京": {
        "一号线": ["四惠", "大望路", "天安门", "西单"],

        "二号线": ["北京站", "朝阳门", "东直门", "西直门"],

        "三号线": ["国贸", "三元桥", "知春路", "巴沟"]

    },
    "上海": {
        "四号线": ["徐家汇", "人民广场", "延长路", "共康路", "呼兰路"],

        "五号线": ["东昌路", "静安寺", "江苏路", "虹桥火车站"],

        "六号线": ["宝山路", "赤峰路", "曹阳路", "虹桥路", "宜山路"]

    },
    "广州": {
        "七号线": ["东山口", "农讲所", "烈士陵园", "公园前", "体育西路"],

        "八号线": ["黄边", "纪念堂", "三元里", "白云公园"],

        "九号线": ["沙河顶", "北京路", "一德路", "文化公园"]

    },
    "深圳": {
        "一号线": ["高新园", "桃园", "白石洲", "华侨城"],

        "四号线": ["白石龙", "明乐", "少年宫", "红山"],

        "五号线": ["大学城", "兴东", "西里", "深圳北站"]

    },
}

  程序:注意到最后的菜单后是一个列表格式

l=[china_ditie]#将整个字典放进列表   [ 字典 ]
while l:
    for k in l[-1]:#循环一个字典  显示的是字典的键,l[-1]是整个字典
        print(k)
    key=input('>>>')
    if key.upper()=='B':
        l.pop()
    elif key.upper()=="Q":
        l.clear()
    elif type(l[-1][key])==dict:
        l.append(l[-1].get(key))
    else:
        print(l[-1][key])

  结果:

F:\pycharmproject\venv\Scripts\python.exe F:/pycharmproject/新建文件夹/day0327/作业/三级菜单demo.py
北京
上海
广州
深圳
>>>北京
一号线
二号线
三号线
>>>一号线
['四惠', '大望路', '天安门', '西单']
一号线
二号线
三号线
>>>

  

 

 

posted @ 2019-03-27 17:27  醉醺醺的  阅读(243)  评论(0编辑  收藏  举报