# (1)如果用户输入的是地级市名,以列表形式输出其下辖所有下辖区、县和
# 县级市名称。
# (2)如果用户输入的是市辖区、县或县级市名,则输出其上一级的地级市
# 名,若有的市辖区名在不同地级市中同时存在时,分行输出全部地级市名。
# 方法一
with open('hebei.txt', 'r', encoding='utf-8') as name:
hebei_lst = [x.strip().split(',') for x in name]
# print(hebei_lst ) # 可输出查看数据格式
name = input()
if name in hebei_lst[0]: # 若输入是地级市名
for ls in hebei_lst: # 遍历列表
if name == ls[0]: # 若当前子列表首元素与输入相同
print(ls[1:]) # 输出当前子列表首元素以后的所有元素
else: # 若输入的是市辖区名
for ls in hebei_lst: # 遍历列表
if name in ls: # 若输入在当前子列表中存在
print(ls[0]) # 输出当前子列表的首元素
# 方法二 ,函数
def read_txt(filename):
"""接收一个文件名为参数,读取文件中的数据到列表中,每行数据根据逗号切分为一个子列表,返回二维列表。"""
with open(filename, 'r', encoding='utf-8') as name:
hebei_lst = [x.strip().split(',') for x in name]
return hebei_lst
def query_district(name, hebei_lst):
"""接收一个地区名为参数,如果用户输入的是地级市名,以列表形式返回其下辖所有下辖区、县和县级市名称。
如果用户输入的是市辖区、县或县级市名,则返回其上一级的地级市名,若有的市辖区名在不同地级市中同时存在时,
分行返回全部地级市名。
"""
if name in hebei_lst[0]: # 若输入是地级市名
for ls in hebei_lst: # 遍历列表
if name == ls[0]: # 若当前子列表首元素与输入相同
print(ls[1:]) # 输出当前子列表首元素以后的所有元素
else: # 若输入的是市辖区名
for ls in hebei_lst: # 遍历列表
if name in ls: # 若输入在当前子列表中存在
print(ls[0]) # 输出当前子列表的首元素
if __name__ == '__main__': # 使前面定义的函数可以被其他模块调用
district_name = input()
file = 'hebei.txt'
ls_of_city = read_txt(file)
query_district(district_name, ls_of_city)
# 方法三
with open('hebei.txt', 'r', encoding='utf-8') as f:
hebei_lst = [x.strip().split(',') for x in f] # 读取文件中的数据到列表,去掉行末换行符转为列表
name = input() # 输入地市名
[print(line[1:]) for line in hebei_lst if name in hebei_lst[0] and name == line[0]] # 若输入是地级市名
[print(line[0]) for line in hebei_lst if name not in hebei_lst[0] and name in line[1:]] # 若输入的是市辖区名
县区查询python
最新推荐文章于 2023-12-27 16:23:52 发布