县区查询python

# (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:]]  # 若输入的是市辖区名

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十四桥_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值