利用字典模拟省市区(县)的查询
Posted huanyue123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用字典模拟省市区(县)的查询相关的知识,希望对你有一定的参考价值。
#python3.7 p= { #建立字典p ‘陕西省‘: {‘‘ ‘西安市‘: {‘新城区‘,‘莲湖区‘,‘灞桥区‘}, ‘咸阳市‘: {‘秦都区‘,‘杨凌区‘,‘渭城区‘}, ‘汉中市‘: {‘汉台区‘,‘洋县‘,‘勉县‘} }, ‘河北省‘: { ‘开封市‘: {‘通许县‘,‘龙亭区‘,‘鼓楼区‘}, ‘安阳市‘: {‘林州市‘,‘汤阴县‘,‘内黄县‘}, ‘焦作市‘: {‘解放区‘,‘温县‘,‘中站区‘} }, ‘山东省‘: {‘青岛市‘: {‘市南区‘,‘市北区‘,‘四方区‘}, ‘烟台市‘: {‘福山区‘,‘牟平去‘,‘莱山区‘}, ‘济南市‘: {‘天桥区‘,‘市中区‘,‘历城区‘} }, } p_list=list(p.keys()) #将字典p的keys转换为列表赋给p_list Flag=True while Flag: for i in p_list: #列表p_list元素下标+1为序号,并打印省份i print(p_list.index(i)+1,i) p_id=input("请输入所查找省份的编号(输入E退出): ") if p_id.isdigit(): #判断输入的p_id是否由数字构成 p_id=int(p_id) #若p_id只由数字构成,则输出列表p_list中p下标为(p_id-1)的元素(所求省份) if p_id >0 and p_id<= len(p_list): p_name=p_list[p_id-1] #将所查省份赋给p_name city_list=list(p[p_name])#将字典中key为p_name的嵌套字典的keys 转换为列表 并赋给city_list while Flag: for i in city_list: #同理求出所查找城市的行政区域 print(city_list.index(i)+1,i) c_id=input("请输入所查找城市的编号(输入B返回上一层 输入E退出): ") if c_id.isdigit(): c_id=int(c_id) if c_id >0 and c_id<= len(city_list): c_name=city_list[c_id-1] town_list=list(p[p_name][c_name]) while Flag: for i in town_list: print(town_list.index(i)+1,i) print(‘请选择你的操作:‘) m =input("输入B返回上一层 输入E退出 ") if m==‘B‘:#输入m 若为B打断当前循环 返回上层循环 break elif m==‘E‘: Flag=False break else: print(‘输入无效,请重新输入 ‘) elif c_id==‘B‘: break elif c_id==‘E‘: Flag=False else: print(‘输入无效,请重新输入 ‘) elif p_id==‘E‘: #若p_id不仅仅有数字构成,判断是否只为E,若为E打断当前循环(结束进程) break else: print(‘输入无效,请重新输入 ‘)
运行结果
1 陕西省 2 河北省 3 山东省 请输入所查找省份的编号(输入E退出): 2 1 开封市 2 安阳市 3 焦作市 请输入所查找城市的编号(输入B返回上一层 输入E退出): 3 1 中站区 2 温县 3 解放区 请选择你的操作: 输入B返回上一层 输入E退出 B 1 开封市 2 安阳市 3 焦作市 请输入所查找城市的编号(输入B返回上一层 输入E退出): E
Process finished with exit code 0
以上是关于利用字典模拟省市区(县)的查询的主要内容,如果未能解决你的问题,请参考以下文章