描述
附件中的文本文件里包含河北省的地区信息,
文件第一行为省名和地级市名,其他每行的第一个地名为地级市名,后面地名为该地区的下辖区、县和县级市的名称,如下所示:
河北,石家庄,唐山,秦皇岛,邯郸,邢台,保定,张家口,承德,沧州,廊坊,衡水 石家庄,长安区,桥东区,......,藁城市,鹿泉市 唐山,路南区,路北区,......,遵化县,迁安县 秦皇岛,海港区,三海关区......,抚宁县,卢龙县 邯郸,邯山区,丛台区,......,曲周县,武安县 邢台,桥东区,桥西区,......,南宫市,沙河西 保定,新市区,北市区,......,安国市,高碑店市 张家口,桥东区,桥西区,......,赤城县,崇礼县 承德,双桥区,双滦区,......,围场蒙古做自治县 沧州,新华区,运河区,......,河间市,黄骅市 廊坊,安次区,广阳区,......,三河市,霸州市 衡水,桃城区,枣强县,......,深州市,冀州县
下面代码可以将该文件的内容读到列表中,运行这段代码,查看输出的列表内容,完成要求的操作:
with open('hebei.txt', 'r', encoding='utf-8') as file: district_ls = [x.split(',') for x in file] print(district_ls)
(1)如果用户输入的是地级市名,以列表形式输出其下辖所有下辖区、县和县级市名称。
(2)如果用户输入的是市辖区、县或县级市名,则输出其上一级的地级市名,若有的市辖区名在不同地级市中同时存在时,输出全部地级市名。
输入格式
输入一个地区或县区名
输出格式
输出其下辖所有区县名称或其上一级的地级区名(有的县区名或能在不同地级区中同时存在,则分多行打印几个上级地区名。)
示例1
输入:唐山
输出:['路南区', '路北区', '古治区', '开平区', '丰南区', '丰润区', '曹妃甸区', '滦县', '滦南县', '乐亭县', '迁西县', '玉田县', '遵化县', '迁安县']
示例2
输入:鸡泽县
输出:邯郸
有小伙伴问这道题,所以写在这了。
话不多说,上代码和注释:
with open('hebei.txt', 'r', encoding='utf-8') as file:#打开名为 hebei.txt 的文件,使用 utf-8 编码读取
ls = [x.replace("\n","").split(',') for x in file]#将文件中每一行的末尾的换行符'\n'删除并用逗号分隔开每个元素
#最后将每行转换成列表,存储到名为 ls 的列表中
j=0
i=0
s=input()#用户输入地区或县区名,并将其存储到变量s中
if s in ls[0]:
for i in range(0,len(ls[0])):
if s==ls[0][i]:
j = i
break
#判断用户输入的地区或县区名s是否在列表ls中第一行ls[0]中,如果存在则进行以下操作:
#循环遍历列表ls中第一行ls[0]中的所有元素,如果找到与用户输入的地区或县区名s相同的元素,则将变量j赋值为该元素的下标,退出循环
ls1=[]
for i in range(1,len(ls[j])):
ls1.append(ls[j][i])
print(ls1)
#则遍历ls中第j行中除第一个元素外的所有元素,将这些元素存储到一个新的列表ls1中,并将其输出
else:
for i in range(0,len(ls)):
for j in range(0,len(ls[i])):
if s==ls[i][j]:
print(ls[i][0])
#如果用户输入的地区或县区名s不在列表ls中第一行ls[0]中,则遍历列表ls中所有行及每行中的所有元素,
#如果找到与用户输入的地区或县区名s相同的元素,则输出该元素所在行的第一个元素,即其上一级的地级区名
......这么写下来,感觉就没什么好讲的了
看注释理解吧233文章来源:https://www.toymoban.com/news/detail-517372.html
Ps:不要关注我,关注就拉黑,不想被关注捏
——快乐的小马文章来源地址https://www.toymoban.com/news/detail-517372.html
到了这里,关于Python123 县区查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!