zoukankan      html  css  js  c++  java
  • python之三层菜单递归

          首先非常感谢11期的学长薜保库提供了一种非常实用函数递归方法,让实现三层菜单如此简单,不过对所遍历的嵌套字典或列表格式有所要求。有特定的环境下非常实用。

          主要针对中国的各省市区进行展示,采用了百度的js接口:

                      http://passport.baidu.com/js/sitedata_bas.js

          

          格式大概如下:


    var sitedata =
    [
        { name:"请选择", sub:[{name:"请选择"}], type:1},
        { name:"北京",  sub:[{name:"请选择"},{name:"东城区"},{name:"西城区"},{name:"崇文区"},{name:"宣武区"},{name:"朝阳区"},{name:"海淀区"},{name:"丰台区"},{name:"石景山区"},{name:"房山区"},{name:"通州区"},{name:"顺义区"},{name:"昌平区"},{name:"大兴区"},{name:"怀柔区"},{name:"平谷区"},{name:"门头沟区"},{name:"密云县"},{name:"延庆县"},{name:"其他"}], type:0},
        { name:"广东",  sub:[{name:"请选择",sub:[]},
    	   { name:"广州",  sub:[{name:"请选择"},{name:"越秀区"},{name:"荔湾区"},{name:"海珠区"},{name:"天河区"},{name:"白云区"},{name:"黄埔区"},{name:"番禺区"},{name:"花都区"},{name:"南沙区"},{name:"萝岗区"},{name:"增城市"},{name:"从化市"},{name:"其他"}],type:0},
    { name:"深圳", sub:[{name:"请选择"},{name:"福田区"},{name:"罗湖区"},{name:"南山区"},{name:"宝安区"},{name:"龙岗区"},{name:"盐田区"},{name:"其他"}], type:0}, { name:"珠海", sub:[{name:"请选择"},{name:"香洲区"},{name:"斗门区"},{name:"金湾区"},{name:"其他"}],type:0}, { { name:"汕头", sub:[{name:"请选择"},{name:"金平区"},{name:"濠江区"},{name:"龙湖区"},{name:"潮阳区"},{name:"潮南区"},{name:"澄海区"},{name:"南澳县"},{name:"其他"}],type:0}, { name:"韶关", sub:[{name:"请选择"},{name:"浈江区"},{name:"武江区"},{name:"曲江区"},{name:"乐昌市"},{name:"南雄市"},{name:"始兴县"},{name:"仁化县"},{name:"翁源县"},{name:"新丰县"},{name:"乳源瑶族自治县"},{name:"其他"}],type:0}, }


    具体代码如下:
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    __author__ = 'xuebk'
    import logging
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    logger = logging.getLogger(__name__)
    
    def search_a(sitedata,search=None):
        if search is None:
            for x in sitedata:
                print x['name'],",",
            print
            search = raw_input('请输入相应名称.:')
        print "search:"+search
        for i in sitedata:
            if search != i['name']:
                continue
            print('查询到%s'%(i['name']))
            if 'sub' in i.keys():
                search_a(i['sub'])
    
    if __name__ == '__main__':
        search_a(sitedata_bas)
    递归调用
    
    
    做人一定要靠自己
  • 相关阅读:
    sfs2x 连接 mongodb
    java websocket
    webstorm 4.0 注册码
    解决 sfs2 admin tool 找不到扩展
    window 注册表五大类
    opengl 学习第二日
    java google Protobuf
    扩展 java sencha touch PhonegapPlugin
    sencha touch2 kryonet socket phonegap 通信 作者:围城
    sencha touch2 layout 笔记
  • 原文地址:https://www.cnblogs.com/wushank/p/5115273.html
Copyright © 2011-2022 走看看