把复杂问题简单化

1 列出【部分】【最简单的】原始数据,和想要的数据
2 要清楚每一步在干嘛 log log=print

provice = [{"name": "北京市","id": "110000000000"
}, {"name": "天津市","id": "120000000000"
}, {"name": "河北省","id": "130000000000"
}, {"name": "山西省","id": "140000000000"
}, {"name": "内蒙古自治区","id": "150000000000"
}, {"name": "辽宁省","id": "210000000000"
}, {"name": "吉林省","id": "220000000000"
}, {"name": "黑龙江省","id": "230000000000"
}, {"name": "上海市","id": "310000000000"
}, {"name": "江苏省","id": "320000000000"
}, {"name": "浙江省","id": "330000000000"
}, {"name": "安徽省","id": "340000000000"
}, {"name": "福建省","id": "350000000000"
}, {"name": "江西省","id": "360000000000"
}, {"name": "山东省","id": "370000000000"
}, {"name": "河南省","id": "410000000000"
}, {"name": "湖北省","id": "420000000000"
}, {"name": "湖南省","id": "430000000000"
}, {"name": "广东省","id": "440000000000"
}, {"name": "广西壮族自治区","id": "450000000000"
}, {"name": "海南省","id": "460000000000"
}, {"name": "重庆市","id": "500000000000"
}]ccity = {"110000000000": [{"city": "市辖区","name": "东城区","id": "110101000000"},{"city": "市辖区","name": "西城区","id": "110102000000"},{"city": "市辖区","name": "朝阳区","id": "110105000000"},{"city": "市辖区","name": "丰台区","id": "110106000000"},{"city": "市辖区","name": "石景山区","id": "110107000000"},{"city": "市辖区","name": "海淀区","id": "110108000000"},{"city": "市辖区","name": "门头沟区","id": "110109000000"},{"city": "市辖区","name": "房山区","id": "110111000000"},{"city": "市辖区","name": "通州区","id": "110112000000"},{"city": "市辖区","name": "顺义区","id": "110113000000"},{"city": "市辖区","name": "昌平区","id": "110114000000"},{"city": "市辖区","name": "大兴区","id": "110115000000"},{"city": "市辖区","name": "怀柔区","id": "110116000000"},{"city": "市辖区","name": "平谷区","id": "110117000000"},{"city": "市辖区","name": "密云区","id": "110118000000"},{"city": "市辖区","name": "延庆区","id": "110119000000"}],"120000000000": [{"city": "市辖区","name": "和平区","id": "120101000000"},{"city": "市辖区","name": "河东区","id": "120102000000"},{"city": "市辖区","name": "河西区","id": "120103000000"},{"city": "市辖区","name": "南开区","id": "120104000000"},{"city": "市辖区","name": "河北区","id": "120105000000"},{"city": "市辖区","name": "红桥区","id": "120106000000"},{"city": "市辖区","name": "东丽区","id": "120110000000"},{"city": "市辖区","name": "西青区","id": "120111000000"},{"city": "市辖区","name": "津南区","id": "120112000000"},{"city": "市辖区","name": "北辰区","id": "120113000000"},{"city": "市辖区","name": "武清区","id": "120114000000"},{"city": "市辖区","name": "宝坻区","id": "120115000000"},{"city": "市辖区","name": "滨海新区","id": "120116000000"},{"city": "市辖区","name": "宁河区","id": "120117000000"},{"city": "市辖区","name": "静海区","id": "120118000000"},{"city": "市辖区","name": "蓟州区","id": "120119000000"},{"city": "市辖区","name": "和平区","id": "120101000000"},{"city": "市辖区","name": "河东区","id": "120102000000"},{"city": "市辖区","name": "河西区","id": "120103000000"},{"city": "市辖区","name": "南开区","id": "120104000000"},{"city": "市辖区","name": "河北区","id": "120105000000"},{"city": "市辖区","name": "红桥区","id": "120106000000"},{"city": "市辖区","name": "东丽区","id": "120110000000"},{"city": "市辖区","name": "西青区","id": "120111000000"},{"city": "市辖区","name": "津南区","id": "120112000000"},{"city": "市辖区","name": "北辰区","id": "120113000000"},{"city": "市辖区","name": "武清区","id": "120114000000"},{"city": "市辖区","name": "宝坻区","id": "120115000000"},{"city": "市辖区","name": "滨海新区","id": "120116000000"},{"city": "市辖区","name": "宁河区","id": "120117000000"},{"city": "市辖区","name": "静海区","id": "120118000000"},{"city": "市辖区","name": "蓟州区","id": "120119000000"}],"130000000000": [{"province": "河北省","name": "石家庄市","id": "130100000000"},{"province": "河北省","name": "唐山市","id": "130200000000"},{"province": "河北省","name": "秦皇岛市","id": "130300000000"},{"province": "河北省","name": "邯郸市","id": "130400000000"},{"province": "河北省","name": "邢台市","id": "130500000000"},{"province": "河北省","name": "保定市","id": "130600000000"},{"province": "河北省","name": "张家口市","id": "130700000000"},{"province": "河北省","name": "承德市","id": "130800000000"},{"province": "河北省","name": "沧州市","id": "130900000000"},{"province": "河北省","name": "廊坊市","id": "131000000000"},{"province": "河北省","name": "衡水市","id": "131100000000"}],"140000000000": [{"province": "山西省","name": "太原市","id": "140100000000"},{"province": "山西省","name": "大同市","id": "140200000000"},{"province": "山西省","name": "阳泉市","id": "140300000000"},{"province": "山西省","name": "长治市","id": "140400000000"},{"province": "山西省","name": "晋城市","id": "140500000000"},{"province": "山西省","name": "朔州市","id": "140600000000"},{"province": "山西省","name": "晋中市","id": "140700000000"},{"province": "山西省","name": "运城市","id": "140800000000"},{"province": "山西省","name": "忻州市","id": "140900000000"},{"province": "山西省","name": "临汾市","id": "141000000000"},{"province": "山西省","name": "吕梁市","id": "141100000000"}]}
#  因为省市数据太多会导致重复审核不通过 所以删减了部分数据 log = print'''
def bb():# list=[]d = {}pro = {}ci = {}l = []t = {}for p in provice:pro = dict()pro['province'] = {'id': p['id'], 'name': p['name']}for c in city[p['id']]:print(c['id'], c['name'])t = {'id': c['id'], 'name': c['name']}pro.setdefault('city', []).append(t)l.append(pro)print(pro)print('-' * 30, '以下是列表', '-' * 100)print(l)print(l)
''''''
def clear_city_information(city):# city = listfor c in city:del c['city']return city
'''def get_result(b, c):# log('b', b)# log('c', c)result = []for i in b:# log('i', i)province = iprovince_id = i.get('id')city = c.get(province_id)# log('city', city)iu = del_city_or_province(city)province['city'] = cityresult.append(province)# log('result', result)return resultdef data():b = [{"name": "北京市","id": "110000000000"}]c = {"110000000000": [{"city": "市辖区","name": "东城区","id": "110101000000",}]}e = [{"id": "110000000000","name": "北京市",'city': [{"name": "东城区","id": "110101000000",}]}]b=provicec=ccityee = get_result(b, c)#log('b',b)#log('c',c)log('ee', ee)'''if ee != e:log('ni co le', ee, e)else:log('你好棒啊! 你写对了!!!')
'''def del_city_or_province(a):# log('a', a)r = []for i in a:#log('i', i)if 'city' in i.keys():del i['city']else:del i['province']#log('iiiii', i)r.append(i)return rdef iu():a = [{'city': '市辖区', 'name': '东城区', 'id': '110101000000'}]b = [{'name': '东城区', 'id': '110101000000'}]xixi = del_city_or_province(a)if xixi != b:log('ni co le')else:log('你好棒啊! 你写对了!!!')def main():data()#iu()if __name__ == '__main__':main()'''if p['name'] == '北京市':p_id = p['id']log(p_id)c = city[p_id]log('c', c)'''
from test_for_learn.final import get_province_city_listlog = printdef data():a = get_province_city_list()'''a = [{'name': '北京市','id': '110000000000','city': [{'name': '东城区', 'id': '110101000000'},{'name': '西城区', 'id': '110102000000'},{'name': '朝阳区', 'id': '110105000000'},{'name': '丰台区', 'id': '110106000000'},{'name': '石景山区', 'id': '110107000000'},{'name': '海淀区', 'id': '110108000000'},{'name': '门头沟区', 'id': '110109000000'},{'name': '房山区', 'id': '110111000000'},{'name': '通州区', 'id': '110112000000'},{'name': '顺义区', 'id': '110113000000'},{'name': '昌平区', 'id': '110114000000'},{'name': '大兴区', 'id': '110115000000'},{'name': '怀柔区', 'id': '110116000000'},{'name': '平谷区', 'id': '110117000000'},{'name': '密云区', 'id': '110118000000'},{'name': '延庆区', 'id': '110119000000'}]}]'''log(get_province_id(a, '福建省'),get_city_id(a, '中山市'),get_info_from_id(a, '110101000000'))def del_city_or_province(city_data):"""删除原始city数据里多余的city或province字段"""city_list = []for c in city_data:if 'city' in c.keys():del c['city']else:del c['province']city_list.append(c)log('city_list',city_list)return city_listdef is_municipality(city):"""判断是不是直辖市"""municipality = ['北京市', '天津市', '上海市', '重庆市']if city in municipality:return Trueelse:return Falsedef get_no_municipality_id(province_city_info, city_name):"""获得非直辖市城市的id"""city_id = ''for province in province_city_info:for city in province['city']:if city_name == city['name']:city_id = city['id']return city_idlog('no_municipality_id', city_id)return city_iddef get_province_id(province_city_info, province_name):"""获得省份名称的id"""province_id = ''for province in province_city_info:if province_name == province['name']:province_id = province['id']log('province_id', province_id)return province_idlog('province_id', province_id)return province_iddef get_city_id(province_city_info, city_name):"""获得城市名称的id"""#  如果城市是直辖市,对应的是省份if is_municipality(city_name):city_id = get_province_id(province_city_info, city_name)else:city_id = get_no_municipality_id(province_city_info, city_name)log('city_id', city_id)return city_iddef get_info_from_id(province_city_info, search_id):"""从id获得省/市的类型和名称"""info = {}for province in province_city_info:if search_id == province['id']:info['type'] = '省'info['name'] = province['name']log('info',info)return infoelse:info = get_city_info_from_id(province, search_id)log('info', info)return inforeturn infodef get_city_info_from_id(province:dict, search_id):info = {}for city in province['city']:if search_id == city['id']:info['type'] = '市'info['name'] = city['name']return inforeturn info'''
def is_municipality(city):municipality = ['北京市', '天津市', '上海市', '重庆市']if city in municipality:return Trueelse:return Falsedef get_province(a, province):for i in a:if province in i['name']:province_id = i['id']log('province_id', province_id)return province_iddef get_city(a, city):if is_municipality(city):get_province(a, city)else:for i in a:#log('i', i)#log('-'*100)#log('city', i['city'])for j in i['city']:if city in j['name']:city_id = j['id']log('city_id', city_id)return city_iddef get_type(a,id):info = {}for i in a:if id == i['id']:#info['type'] = i['name'][-1]info['type'] = '省'info['name'] = i['name']# log('name',i['name'])# log('type',info['type'])# log('info',info)else:for j in i['city']:if id == j['id']:#info['type'] = j['name'][-1]info['type'] = '市'info['name'] = j['name']log('info', info)return info'''
def main():data()if __name__ == '__main__':main()

最终得到结果

‘复杂变简单‘的代码例子相关推荐

  1. 基于vue-cli、elementUI的Vue超简单入门小例子

    基于vue-cli.elementUI的Vue超简单入门小例子 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. 开始写例子之前,先对环境的部署做点简单 ...

  2. fread读结构体返回值是0无错误_嵌入式C编程之错误处理(附代码例子)!

    原标题:嵌入式C编程之错误处理(附代码例子)! 作者: clover-toeic 前言 本文主要总结嵌入式系统C语言编程中,主要的错误处理方式.文中涉及的代码运行环境如下: 一.错误概念 错误分类 从 ...

  3. mvc登录实例 mysql_spring mvc + mybatis + mysql 调整的一个简单的登录例子

    spring mvc + mybatis + mysql 整合的一个简单的登录例子 今天用spring跟mybatis整合写了一个简单的登录例子,第一次整合,给自己做个笔记,可能注释写的有点少,做的不 ...

  4. 菜鸟学习Hibernate——简单的一个例子

    一.Hibernate开发. 上篇博客已经为大家介绍了持久层框架的发展流程,持久层框架的种类. 为了能够使用Hibernate快速上手,我们先讲解一个简单的Hibernate应用实例hibernate ...

  5. smarty课程---最最最简单的smarty例子

    smarty课程---最最最简单的smarty例子 一.总结 一句话总结:其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个 ...

  6. boost::log模块实现一个简单日志的例子

    boost::log模块实现一个简单日志的例子 实现功能 C++实现代码 实现功能 boost::log模块实现一个简单日志的例子 C++实现代码 #include <boost/log/tri ...

  7. java css网页布局实例_java代码例子

    JAVA 类名.方法名(这里面写的是什么)能不能写个代要是类名直接调用的方法,那这个方法就是静态的(static)方法,是不用new出新对象实例就可以直接调用的方法.看下面例子: class A{ p ...

  8. 轻松创建nodejs服务器(1):一个简单nodejs服务器例子

    这篇文章主要介绍了一个简单nodejs服务器例子,本文实现了一个简单的hello world例子,并展示如何运行这个服务器,需要的朋友可以参考下 我们先来实现一个简单的例子,hello world. ...

  9. webpack和react_使用React和Webpack进行简单的代码拆分

    webpack和react by Didier FRANC 由Didier FRANC 使用React和Webpack进行简单的代码拆分 (Straightforward code splitting ...

最新文章

  1. react取消监听scroll事件
  2. java socket 字节读取_Java SocketChannel 读取ByteBuffer字节的处理模型
  3. HashMap的负载因子为什么默认是0.75
  4. Leetcode 剑指offer 22. 链表中第k个节点 (每日一题 20210716)
  5. Retrofit解析网页Json数据简单实例
  6. nginx利用image_filter动态生成缩略图
  7. FPGA串口(UART)通信协议制定与设计思路详解示例
  8. 公路多孔箱涵设计_【公路常识中篇】公路路基边坡滑坡防护设计和预防
  9. 继承Thread类的方式创建多线程
  10. 2016计算机考研408答案,2016年计算机408统考考研真题及答案解析.pdf
  11. 亲戚关系php,亲属关系称谓、亲属称谓表、亲属称呼表、亲属关系称呼
  12. SDIO wifi Marvell8801/Marvell88w8801 介绍(二) ---- SDIO协议介绍
  13. 【Bootstrap】选择折叠项collapse
  14. 魔术师usm安装服务器系统,魔术师u盘一键装系统
  15. 智慧公厕擦手纸洗手液余量实时在线统计
  16. Chainlink官方文档翻译(二) 中间件-随机数 Intermediates - Random Numbers)
  17. Dubbo-06 20190320
  18. Python操作MySQL分享
  19. GSM模块的调试(一)
  20. 数据库导入excel文件失败

热门文章

  1. Xcode调试命令大全 (LLDB Cheatsheet)
  2. asterisk channel driver dev ref
  3. 现任明教教主CCNA Security作业汇总
  4. concurrent: CyclicBarrier
  5. FreeMarker快速上手
  6. android sdio 时钟 ios-clock,iOS 炫酷时钟
  7. php-ml案例,AppML 案例原型
  8. php恶意代码,php快速查找数据库中恶意代码的方法,快速查找恶意代码_PHP教程...
  9. MySQL高级in和not in
  10. Nacos源码DistroConsistencyServiceImpl