博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之三层菜单递归
阅读量:5290 次
发布时间:2019-06-14

本文共 2018 字,大约阅读时间需要 6 分钟。

 

      首先非常感谢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 loggingimport sysreload(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)
递归调用

 

 

转载于:https://www.cnblogs.com/wushank/p/5115273.html

你可能感兴趣的文章
java调用oracle存储过程,返回结果集
查看>>
使用命令创建数据库和表
查看>>
数据库的高级查询
查看>>
HttpClient(一)-- HelloWorld
查看>>
dump调试函数
查看>>
Android 利用Sharp样式设置文本框EditText圆角形状
查看>>
[YTU]_2443 ( C++习题 复数类--重载运算符3+)
查看>>
sdut_1189
查看>>
归并排序
查看>>
机器视觉:SSD Single Shot MultiBox Detector
查看>>
走遍美国 —— 各州及其别名
查看>>
国内外免费电子书(数学、算法、图像、深度学习、机器学习)
查看>>
狄利克雷过程(Dirichlet Process)
查看>>
Python 字符串拼接
查看>>
HTML5 表单元素
查看>>
五子棋项目的实现(二)博弈树算法的描述
查看>>
Hibernate : Disabling contextual LOB creation as createClob() method threw error
查看>>
【bzoj4872】[Shoi2017]分手是祝愿 期望dp
查看>>
字符串元转分
查看>>
程序员网址大全(转)
查看>>