【Python】中国有哪些同名的省市县?

这道题适合写个脚本来解。
首先从百度地图API下载一份行政区划数据。开发资源 | 百度地图API SDK

然后做一个简单的数据统计就可以啦~

行政区划同一级同名的:

import pandas as pd

df = pd.read_csv("行政区划乡镇清单202003.csv")

dic = {}
prov = list(df['NAME_PROV'])
city = list(df['NAME_CITY'])
coun = list(df['NAME_COUN'])

for i in range(len(coun)):
    if coun[i] not in dic:
        dic[coun[i]] = set()
    dic[coun[i]].add(city[i])

new_dic = {}
for k,v in dic.items():
    if len(v) > 1 and not (len(k) < 3 and k.endswith('区')):
        new_dic[k] = v

lst = sorted(new_dic.items(), key=lambda d: len(d[1]), reverse=True)
for line in lst:
    print(line)

结果如下:

('市中区', {'乐山市', '内江市', '济南市', '枣庄市'})
('鼓楼区', {'福州市', '开封市', '徐州市', '南京市'})
('新华区', {'平顶山市', '沧州市', '石家庄市'})
('桥西区', {'邢台市', '石家庄市', '张家口市'})
('铁西区', {'沈阳市', '鞍山市', '四平市'})
('和平区', {'沈阳市', '台中市', '天津市'})
('大安区', {'自贡市', '台北市', '台中市'})
('太平区', {'阜新市', '台中市'})
('铁东区', {'鞍山市', '四平市'})
('中山区', {'台北市', '大连市'})
('新城区', {'西安市', '呼和浩特市'})
('河东区', {'临沂市', '天津市'})
('朝阳区', {'北京市', '长春市'})
('西安区', {'牡丹江市', '辽源市'})
('城关区', {'兰州市', '拉萨市'})
('安定区', {'台南市', '定西市'})
('南山区', {'深圳市', '鹤岗市'})
('龙华区', {'深圳市', '海口市'})
('城中区', {'柳州市', '西宁市'})
('大同区', {'台北市', '大庆市'})
('泰山区', {'新北市', '泰安市'})
('新兴区', {'七台河市', '高雄市'})
('中西区', {'香港', '台南市'})
('新市区', {'乌鲁木齐市', '台南市'})
('东山区', {'台南市', '鹤岗市'})
('青山区', {'包头市', '武汉市'})
('永定区', {'张家界市', '龙岩市'})
('江北区', {'宁波市', '重庆市'})
('海州区', {'连云港市', '阜新市'})
('通州区', {'北京市', '南通市'})
('西湖区', {'南昌市', '杭州市'})
('长安区', {'西安市', '石家庄市'})
('金山区', {'新北市', '上海市'})
('普陀区', {'舟山市', '上海市'})
('松山区', {'赤峰市', '台北市'})
('宝山区', {'双鸭山市', '上海市'})
('向阳区', {'佳木斯市', '鹤岗市'})
('白云区', {'广州市', '贵阳市'})
('桥东区', {'邢台市', '张家口市'})

全部同名的:

import pandas as pd

df = pd.read_csv("行政区划乡镇清单202003.csv")

dic = {}
prov = list(df['NAME_PROV'])
city = list(df['NAME_CITY'])
coun = list(df['NAME_COUN'])

prov_names, city_names, coun_names = [], [], []
for i in range(len(prov)):
    prov_names.append(prov[i])
    if prov[i] != city[i]:
        city_names.append(prov[i]+city[i])
    else:
        city_names.append(prov[i])
        
    if city[i] != coun[i]:
        coun_names.append(city_names[i]+coun[i])
    else:
        coun_names.append(city_names[i])
    
minzu = "蒙古族、藏族、苗族、壮族、回族、维吾尔族、彝族、布依族、朝鲜族、侗族、白族、 \
        哈尼族、傣族、傈僳族、畲族、拉祜族、满族、瑶族、土家族、哈萨克族、黎族、佤族、\
        高山族、水族、东乡族、景颇族、土族、仫佬族、布朗族、毛南族、锡伯族、普米族、\
        纳西族、柯尔克孜族、达斡尔族、羌族、撒拉族、仡佬族、阿昌族、塔吉克族、怒族、\
        俄罗斯族、德昂族、裕固族、塔塔尔族、鄂伦春族、门巴族、基诺族、乌孜别克族、\
        鄂温克族、保安族、京族、独龙族、赫哲族、珞巴族、汉族"
minzu_lst = minzu.split("、")
minzu_lst = [name.strip() for name in minzu_lst]

stop_words_prov = ['省', '市', '维吾尔自治区', '壮族自治区', '回族自治区', '自治区']
stop_words_prov = sorted(stop_words_prov, key=lambda d:len(d), reverse=True)

stop_words_city = ['县', '市', '盟', '地区', '林区', '自治县', '自治州']
stop_words_city = sorted(stop_words_city, key=lambda d:len(d), reverse=True)

stop_words_coun = ['旗', '县', '市', '乡', '镇', '区', '群岛', '自治县',  \
                '中旗', '右旗', '后旗', '前旗', '左旗', '自治旗', '联合旗', \
                '右翼中旗', '左翼中旗', '右翼前旗', '左翼前旗', '右翼后旗', '左翼后旗']
stop_words_coun = sorted(stop_words_coun, key=lambda d:len(d), reverse=True)

def remove_suffix(name, suffix):
    if name.endswith(suffix):
        return name[:-len(suffix)]
    return name
    
def remove_stop_word_suffix(name, stop_words):
    short_name = name
    for word in stop_words:
        if name.endswith(word):
            short_name = remove_suffix(name, word)
            break
    return short_name
    
def remove_minzu_suffix(name, minzu_lst):
    short_name = name
    if len(minzu_lst) == 0:
        return short_name
    
    flag = True
    while flag:
        flag = False
        for word in minzu_lst:
            if short_name.endswith(word):
                short_name = remove_suffix(short_name, word)
                flag = True
                break
            if len(word) > 2 and short_name.endswith(word[:-1]):
                short_name = remove_suffix(short_name, word[:-1])
                flag = True
                break
    return short_name          
    
def add_data(dic, name_lst, long_name_lst, stop_words, minzu_lst):
    assert len(name_lst) == len(long_name_lst)
    for i in range(len(name_lst)):
        name = name_lst[i]
        long_name = long_name_lst[i]
        if len(name) < 3 and name.endswith('区'):
            continue
            
        short_name = remove_stop_word_suffix(name, stop_words)
        short_name = remove_minzu_suffix(short_name, minzu_lst)
                    
        if short_name not in dic:
            dic[short_name] = set()
        dic[short_name].add(long_name)

add_data(dic, prov, prov_names, stop_words_prov, [])
add_data(dic, city, city_names, stop_words_city, minzu_lst)

new_coun = []
for name in coun:
    new_name = remove_suffix(name, '直辖')
    new_coun.append(new_name)
    
new_coun_names = []
for name in coun_names:
    new_name = remove_suffix(name, '直辖')
    new_coun_names.append(new_name)

add_data(dic, new_coun, new_coun_names, stop_words_coun, minzu_lst)

new_dic = {}
for k,v in dic.items():
    if len(v) > 1 and k != '':
        new_dic[k] = v

lst = sorted(new_dic.items(), key=lambda d: len(d[1]), reverse=True)
for line in lst:
    print(line)

结果如下:

('科尔沁', {'内蒙古自治区兴安盟科尔沁右翼前旗', '内蒙古自治区通辽市科尔沁区', '内蒙古自治区通辽市科尔沁左翼后旗', '内蒙古自治区兴安盟科尔沁右翼中旗', '内蒙古自治区通辽市科尔沁左翼中旗'})
('朝阳', {'辽宁省朝阳市朝阳县', '辽宁省朝阳市', '北京市朝阳区', '吉林省长春市朝阳区'})
('市中', {'四川省内江市市中区', '山东省枣庄市市中区', '四川省乐山市市中区', '山东省济南市市中区'})
('和平', {'辽宁省沈阳市和平区', '广东省河源市和平县', '台湾省台中市和平区', '天津市和平区'})
('大安', {'台湾省台中市大安区', '台湾省台北市大安区', '吉林省白城市大安市', '四川省自贡市大安区'})
('鼓楼', {'江苏省南京市鼓楼区', '河南省开封市鼓楼区', '江苏省徐州市鼓楼区', '福建省福州市鼓楼区'})
('海南', {'海南省', '青海省海南藏族自治州', '内蒙古自治区乌海市海南区'})
('阿拉善', {'内蒙古自治区阿拉善盟', '内蒙古自治区阿拉善盟阿拉善左旗', '内蒙古自治区阿拉善盟阿拉善右旗'})
('和田', {'新疆维吾尔自治区和田地区和田市', '新疆维吾尔自治区和田地区', '新疆维吾尔自治区和田地区和田县'})
('中山', {'辽宁省大连市中山区', '台湾省台北市中山区', '广东省中山市'})
('西安', {'黑龙江省牡丹江市西安区', '吉林省辽源市西安区', '陕西省西安市'})
('文山', {'云南省文山壮族苗族自治州', '台湾省台北市文山区', '云南省文山壮族苗族自治州文山市'})
('大同', {'黑龙江省大庆市大同区', '山西省大同市', '台湾省台北市大同区'})
('兴安', {'黑龙江省鹤岗市兴安区', '广西壮族自治区桂林市兴安县', '内蒙古自治区兴安盟'})
('临夏', {'甘肃省临夏回族自治州临夏市', '甘肃省临夏回族自治州', '甘肃省临夏回族自治州临夏县'})
('新华', {'河北省沧州市新华区', '河北省石家庄市新华区', '河南省平顶山市新华区'})
('桥西', {'河北省张家口市桥西区', '河北省石家庄市桥西区', '河北省邢台市桥西区'})
('铁西', {'吉林省四平市铁西区', '辽宁省鞍山市铁西区', '辽宁省沈阳市铁西区'})
('乌拉特', {'内蒙古自治区巴彦淖尔市乌拉特后旗', '内蒙古自治区巴彦淖尔市乌拉特前旗', '内蒙古自治区巴彦淖尔市乌拉特中旗'})
('新兴', {'广东省云浮市新兴县', '黑龙江省七台河市新兴区', '台湾省高雄市新兴区'})
('东山', {'福建省漳州市东山县', '黑龙江省鹤岗市东山区', '台湾省台南市东山区'})
('察哈尔', {'内蒙古自治区乌兰察布市察哈尔右翼前旗', '内蒙古自治区乌兰察布市察哈尔右翼后旗', '内蒙古自治区乌兰察布市察哈尔右翼中旗'})
('河北', {'河北省', '天津市河北区'})
('吉林', {'吉林省', '吉林省吉林市'})
('河南', {'河南省', '青海省黄南藏族自治州河南蒙古族自治县'})
('本溪', {'辽宁省本溪市本溪满族自治县', '辽宁省本溪市'})
('抚顺', {'辽宁省抚顺市', '辽宁省抚顺市抚顺县'})
('阜新', {'辽宁省阜新市', '辽宁省阜新市阜新蒙古族自治县'})
('铁岭', {'辽宁省铁岭市铁岭县', '辽宁省铁岭市'})
('辽阳', {'辽宁省辽阳市', '辽宁省辽阳市辽阳县'})
('昌吉', {'新疆维吾尔自治区昌吉回族自治州', '新疆维吾尔自治区昌吉回族自治州昌吉市'})
('喀什', {'新疆维吾尔自治区喀什地区喀什市', '新疆维吾尔自治区喀什地区'})
('塔城', {'新疆维吾尔自治区塔城地区', '新疆维吾尔自治区塔城地区塔城市'})
('阿勒泰', {'新疆维吾尔自治区阿勒泰地区', '新疆维吾尔自治区阿勒泰地区阿勒泰市'})
('通化', {'吉林省通化市通化县', '吉林省通化市'})
('甘南', {'黑龙江省齐齐哈尔市甘南县', '甘肃省甘南藏族自治州'})
('白银', {'甘肃省白银市', '甘肃省白银市白银区'})
('玉树', {'青海省玉树藏族自治州玉树市', '青海省玉树藏族自治州'})
('大理', {'云南省大理白族自治州', '云南省大理白族自治州大理市'})
('新乡', {'河南省新乡市新乡县', '河南省新乡市'})
('安阳', {'河南省安阳市', '河南省安阳市安阳县'})
('湘潭', {'湖南省湘潭市湘潭县', '湖南省湘潭市'})
('长沙', {'湖南省长沙市长沙县', '湖南省长沙市'})
('岳阳', {'湖南省岳阳市', '湖南省岳阳市岳阳县'})
('衡阳', {'湖南省衡阳市衡阳县', '湖南省衡阳市'})
('嘉义', {'台湾省嘉义市', '台湾省嘉义县'})
('桃园', {'台湾省桃园市', '台湾省桃园市桃园区'})
('新北', {'江苏省常州市新北区', '台湾省新北市'})
('新竹', {'台湾省新竹县', '台湾省新竹市'})
('淮安', {'江苏省淮安市', '江苏省淮安市淮安区'})
('邵阳', {'湖南省邵阳市', '湖南省邵阳市邵阳县'})
('濮阳', {'河南省濮阳市', '河南省濮阳市濮阳县'})
('昌江', {'江西省景德镇市昌江区', '海南省昌江黎族自治县'})
('南昌', {'江西省南昌市南昌县', '江西省南昌市'})
('阿克苏', {'新疆维吾尔自治区阿克苏地区阿克苏市', '新疆维吾尔自治区阿克苏地区'})
('北屯', {'台湾省台中市北屯区', '新疆维吾尔自治区北屯市'})
('阿坝', {'四川省阿坝藏族羌族自治州阿坝县', '四川省阿坝藏族羌族自治州'})
('甘孜', {'四川省甘孜藏族自治州', '四川省甘孜藏族自治州甘孜县'})
('恩施', {'湖北省恩施土家族苗族自治州', '湖北省恩施土家族苗族自治州恩施市'})
('荆州', {'湖北省荆州市', '湖北省荆州市荆州区'})
('吉安', {'江西省吉安市吉安县', '江西省吉安市'})
('广安', {'四川省广安市广安区', '四川省广安市'})
('资阳', {'湖南省益阳市资阳区', '四川省资阳市'})
('乌鲁木齐', {'新疆维吾尔自治区乌鲁木齐市', '新疆维吾尔自治区乌鲁木齐市乌鲁木齐县'})
('克拉玛依', {'新疆维吾尔自治区克拉玛依市克拉玛依区', '新疆维吾尔自治区克拉玛依市'})
('黄山', {'安徽省黄山市', '安徽省黄山市黄山区'})
('芜湖', {'安徽省芜湖市', '安徽省芜湖市芜湖县'})
('邢台', {'河北省邢台市邢台县', '河北省邢台市'})
('承德', {'河北省承德市', '河北省承德市承德县'})
('楚雄', {'云南省楚雄彝族自治州', '云南省楚雄彝族自治州楚雄市'})
('红河', {'云南省红河哈尼族彝族自治州红河县', '云南省红河哈尼族彝族自治州'})
('东营', {'山东省东营市东营区', '山东省东营市'})
('连山', {'广东省清远市连山壮族瑶族自治县', '辽宁省葫芦岛市连山区'})
('平山', {'河北省石家庄市平山县', '辽宁省本溪市平山区'})
('东港', {'山东省日照市东港区', '辽宁省丹东市东港市'})
('太平', {'台湾省台中市太平区', '辽宁省阜新市太平区'})
('龙港', {'辽宁省葫芦岛市龙港区', '浙江省温州市龙港市'})
('太和', {'辽宁省锦州市太和区', '安徽省阜阳市太和县'})
('清河', {'河北省邢台市清河县', '辽宁省铁岭市清河区'})
('海城', {'辽宁省鞍山市海城市', '广西壮族自治区北海市海城区'})
('铁东', {'吉林省四平市铁东区', '辽宁省鞍山市铁东区'})
('新城', {'陕西省西安市新城区', '内蒙古自治区呼和浩特市新城区'})
('土默特', {'内蒙古自治区包头市土默特右旗', '内蒙古自治区呼和浩特市土默特左旗'})
('杭锦', {'内蒙古自治区鄂尔多斯市杭锦旗', '内蒙古自治区巴彦淖尔市杭锦后旗'})
('苏尼特', {'内蒙古自治区锡林郭勒盟苏尼特左旗', '内蒙古自治区锡林郭勒盟苏尼特右旗'})
('河东', {'山东省临沂市河东区', '天津市河东区'})
('梨树', {'黑龙江省鸡西市梨树区', '吉林省四平市梨树县'})
('龙山', {'吉林省辽源市龙山区', '湖南省湘西土家族苗族自治州龙山县'})
('龙潭', {'吉林省吉林市龙潭区', '台湾省桃园市龙潭乡'})
('昌邑', {'吉林省吉林市昌邑区', '山东省潍坊市昌邑市'})
('宽城', {'吉林省长春市宽城区', '河北省承德市宽城满族自治县'})
('清水', {'甘肃省天水市清水县', '台湾省台中市清水区'})
('金川', {'甘肃省金昌市金川区', '四川省阿坝藏族羌族自治州金川县'})
('安宁', {'甘肃省兰州市安宁区', '云南省昆明市安宁市'})
('城关', {'西藏自治区拉萨市城关区', '甘肃省兰州市城关区'})
('安定', {'甘肃省定西市安定区', '台湾省台南市安定区'})
('钟山', {'贵州省六盘水市钟山区', '广西壮族自治区贺州市钟山县'})
('江城', {'广东省阳江市江城区', '云南省普洱市江城哈尼族彝族自治县'})
('开平', {'河北省唐山市开平区', '广东省江门市开平市'})
('鹤山', {'河南省鹤壁市鹤山区', '广东省江门市鹤山市'})
('南山', {'黑龙江省鹤岗市南山区', '广东省深圳市南山区'})
('龙华', {'广东省深圳市龙华区', '海南省海口市龙华区'})
('城中', {'广西壮族自治区柳州市城中区', '青海省西宁市城中区'})
('南沙', {'广东省广州市南沙区', '海南省三沙市南沙群岛'})
('大通', {'安徽省淮南市大通区', '青海省西宁市大通回族土族自治县'})
('山阳', {'河南省焦作市山阳区', '陕西省商洛市山阳县'})
('复兴', {'河北省邯郸市复兴区', '台湾省桃园市复兴乡'})
('永和', {'台湾省新北市永和区', '山西省临汾市永和县'})
('泰山', {'山东省泰安市泰山区', '台湾省新北市泰山区'})
('桃源', {'台湾省高雄市桃源区', '湖南省常德市桃源县'})
('凤山', {'台湾省高雄市凤山区', '广西壮族自治区河池市凤山县'})
('中西', {'台湾省台南市中西区', '香港中西区'})
('永康', {'台湾省台南市永康区', '浙江省金华市永康市'})
('新化', {'湖南省娄底市新化县', '台湾省台南市新化区'})
('新市', {'新疆维吾尔自治区乌鲁木齐市新市区', '台湾省台南市新市区'})
('白河', {'陕西省安康市白河县', '台湾省台南市白河区'})
('石门', {'湖南省常德市石门县', '台湾省新北市石门区'})
('东安', {'黑龙江省牡丹江市东安区', '湖南省永州市东安县'})
('青山', {'湖北省武汉市青山区', '内蒙古自治区包头市青山区'})
('永定', {'福建省龙岩市永定区', '湖南省张家界市永定区'})
('象山', {'广西壮族自治区桂林市象山区', '浙江省宁波市象山县'})
('江北', {'重庆市江北区', '浙江省宁波市江北区'})
('云龙', {'江苏省徐州市云龙区', '云南省大理白族自治州云龙县'})
('海州', {'辽宁省阜新市海州区', '江苏省连云港市海州区'})
('栖霞', {'江苏省南京市栖霞区', '山东省烟台市栖霞市'})
('通州', {'江苏省南通市通州区', '北京市通州区'})
('西湖', {'浙江省杭州市西湖区', '江西省南昌市西湖区'})
('华容', {'湖南省岳阳市华容县', '湖北省鄂州市华容区'})
('襄城', {'河南省许昌市襄城县', '湖北省襄阳市襄城区'})
('巴林', {'内蒙古自治区赤峰市巴林左旗', '内蒙古自治区赤峰市巴林右旗'})
('鄂托克', {'内蒙古自治区鄂尔多斯市鄂托克旗', '内蒙古自治区鄂尔多斯市鄂托克前旗'})
('新巴尔虎', {'内蒙古自治区呼伦贝尔市新巴尔虎右旗', '内蒙古自治区呼伦贝尔市新巴尔虎左旗'})
('长安', {'河北省石家庄市长安区', '陕西省西安市长安区'})
('兴山', {'黑龙江省鹤岗市兴山区', '湖北省宜昌市兴山县'})
('林口', {'台湾省新北市林口区', '黑龙江省牡丹江市林口县'})
('龙井', {'台湾省台中市龙井区', '吉林省延边朝鲜族自治州龙井市'})
('金山', {'台湾省新北市金山区', '上海市金山区'})
('永安', {'台湾省高雄市永安区', '福建省三明市永安市'})
('安平', {'台湾省台南市安平区', '河北省衡水市安平县'})
('普陀', {'浙江省舟山市普陀区', '上海市普陀区'})
('沙湾', {'四川省乐山市沙湾区', '新疆维吾尔自治区塔城地区沙湾县'})
('东兴', {'广西壮族自治区防城港市东兴市', '四川省内江市东兴区'})
('长宁', {'四川省宜宾市长宁县', '上海市长宁区'})
('伊宁', {'新疆维吾尔自治区伊犁哈萨克自治州伊宁市', '新疆维吾尔自治区伊犁哈萨克自治州伊宁县'})
('台江', {'福建省福州市台江区', '贵州省黔东南苗族侗族自治州台江县'})
('松山', {'内蒙古自治区赤峰市松山区', '台湾省台北市松山区'})
('兴宁', {'广东省梅州市兴宁市', '广西壮族自治区南宁市兴宁区'})
('宝山', {'黑龙江省双鸭山市宝山区', '上海市宝山区'})
('向阳', {'黑龙江省鹤岗市向阳区', '黑龙江省佳木斯市向阳区'})
('白云', {'贵州省贵阳市白云区', '广东省广州市白云区'})
('桥东', {'河北省张家口市桥东区', '河北省邢台市桥东区'})
('大埔', {'香港大埔区', '广东省梅州市大埔县'})
('五华', {'广东省梅州市五华县', '云南省昆明市五华区'})
('金平', {'云南省红河哈尼族彝族自治州金平苗族瑶族傣族自治县', '广东省汕头市金平区'})
('河口', {'云南省红河哈尼族彝族自治州河口瑶族自治县', '山东省东营市河口区'})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值