统计中国县级以上城市的重复名称
米扑科技因项目需要,自己写代码统计,中国县级数据来源于 中国县级以上城市的行政区划代码
4 鼓楼 河南省_开封市_鼓楼区, 福建省_福州市_鼓楼区, 江苏省_南京市_鼓楼区, 江苏省_徐州市_鼓楼区
3 桥西 河北省_石家庄市_桥西区, 河北省_邢台市_桥西区, 河北省_张家口市_桥西区
3 新华 河南省_平顶山市_新华区, 河北省_石家庄市_新华区, 河北省_沧州市_新华区
3 铁西 吉林省_四平市_铁西区, 辽宁省_沈阳市_铁西区, 辽宁省_鞍山市_铁西区
3 西安 黑龙江省_牡丹江市_西安区, 陕西省_西安市_西安市, 吉林省_辽源市_西安区
3 朝阳 吉林省_长春市_朝阳区, 北京市_市辖区_朝阳区, 辽宁省_朝阳市_朝阳市
2 永定 湖南省_张家界市_永定区, 福建省_龙岩市_永定区
2 栖霞 江苏省_南京市_栖霞区, 山东省_烟台市_栖霞市
2 克拉玛依 新疆维吾尔自治区_克拉玛依市_克拉玛依市, 新疆维吾尔自治区_克拉玛依市_克拉玛依区
2 矿区 山西省_大同市_矿区, 山西省_阳泉市_矿区
2 通州 江苏省_南通市_通州区, 北京市_市辖区_通州区
2 桥东 河北省_邢台市_桥东区, 河北省_张家口市_桥东区
2 西湖 浙江省_杭州市_西湖区, 江西省_南昌市_西湖区
2 安宁 甘肃省_兰州市_安宁区, 云南省_昆明市_安宁市
2 淮安 江苏省_淮安市_淮安市, 江苏省_淮安市_淮安区
2 河北 天津市_市辖区_河北区, 河北省_河北省_河北省
2 兴宁 广西壮族自治区_南宁市_兴宁区, 广东省_梅州市_兴宁市
2 宝山 黑龙江省_双鸭山市_宝山区, 上海市_市辖区_宝山区
2 南山 黑龙江省_鹤岗市_南山区, 广东省_深圳市_南山区
2 开平 河北省_唐山市_开平区, 广东省_江门市_开平市
2 东港 山东省_日照市_东港区, 辽宁省_丹东市_东港市
2 昌邑 吉林省_吉林市_昌邑区, 山东省_潍坊市_昌邑市
2 中山 辽宁省_大连市_中山区, 广东省_中山市_中山市
2 大安 四川省_自贡市_大安区, 吉林省_白城市_大安市
2 铁东 吉林省_四平市_铁东区, 辽宁省_鞍山市_铁东区
2 吉林 吉林省_吉林省_吉林省, 吉林省_吉林市_吉林市
2 青山 内蒙古自治区_包头市_青山区, 湖北省_武汉市_青山区
2 长安 陕西省_西安市_长安区, 河北省_石家庄市_长安区
2 白云 贵州省_贵阳市_白云区, 广东省_广州市_白云区
2 东营 山东省_东营市_东营区, 山东省_东营市_东营市
2 东兴 四川省_内江市_东兴区, 广西壮族自治区_防城港市_东兴市
2 荆州 湖北省_荆州市_荆州市, 湖北省_荆州市_荆州区
2 黄山 安徽省_黄山市_黄山市, 安徽省_黄山市_黄山区
2 海城 广西壮族自治区_北海市_海城区, 辽宁省_鞍山市_海城市
2 江北 浙江省_宁波市_江北区, 重庆市_市辖区_江北区
2 大同 黑龙江省_大庆市_大同区, 山西省_大同市_大同市
2 资阳 四川省_资阳市_资阳市, 湖南省_益阳市_资阳区
2 城关 甘肃省_兰州市_城关区, 西藏自治区_拉萨市_城关区
2 和平 天津市_市辖区_和平区, 辽宁省_沈阳市_和平区
2 新城 内蒙古自治区_呼和浩特市_新城区, 陕西省_西安市_新城区
2 海南 内蒙古自治区_乌海市_海南区, 海南省_海南省_海南省
2 普陀 浙江省_舟山市_普陀区, 上海市_市辖区_普陀区
2 伊春 黑龙江省_伊春市_伊春市, 黑龙江省_伊春市_伊春区
2 向阳 黑龙江省_鹤岗市_向阳区, 黑龙江省_佳木斯市_向阳区
2 海州 江苏省_连云港市_海州区, 辽宁省_阜新市_海州区
2 广安 四川省_广安市_广安市, 四川省_广安市_广安区
2 鹤山 河南省_鹤壁市_鹤山区, 广东省_江门市_鹤山市
2 河东 天津市_市辖区_河东区, 山东省_临沂市_河东区
2 白银 甘肃省_白银市_白银市, 甘肃省_白银市_白银区
Python 数据格式
CHINA_CITY_DICT = { 0 : "-", 110000 : "北京市", 110100 : "市辖区", 110101 : "东城区", 110102 : "西城区", 110105 : "朝阳区", 110106 : "丰台区", 110107 : "石景山区", 110108 : "海淀区", 110109 : "门头沟区", 110111 : "房山区", 110112 : "通州区", 110113 : "顺义区", 110114 : "昌平区", 110115 : "大兴区", 110116 : "怀柔区", 110117 : "平谷区", 110118 : "密云区", ..... }
Python 统计代码
def stat_city_ch(cls): stat_city_dict = {} # 统计个数 stat_city_num_name_dict = {} # 保存城市个数对应的区号 for city_status, city_ch in CHINA_CITY_DICT.iteritems(): if city_ch in ["市辖区", "城区", "郊区", "城中区", "市中区", "省直辖县级行政区划"]: continue # 大于两个汉字以上的城市,去掉末尾的省市区 city_ch_len = len(city_ch.decode('utf-8')) if city_ch_len > 2: city_ch = city_ch.rstrip("省") city_ch = city_ch.rstrip("市") city_ch = city_ch.rstrip("区") city_ch_num = stat_city_dict.get(city_ch, 0) # 用于保存城市个数对应的城市区号(获取城市名称用) city_status_old = stat_city_num_name_dict.get(city_ch+"_"+str(city_ch_num), '') city_ch_num += 1 stat_city_dict[city_ch] = city_ch_num # 更新保存的城市个数对应的城市区号 stat_city_num_name_dict[city_ch+"_"+str(city_ch_num)] = str(city_status_old) + "," + str(city_status) # 统计个数排序,从大到小 stat_city_dict = sorted(stat_city_dict.items(), lambda x, y: cmp(x[1], y[1]), reverse=True) # 打印重复城市的个数 for (city_ch, num) in stat_city_dict: if num <= 1: break # 只输出城市名称重复的城市名 ## 核心是获取重复城市的三级 省 + 市 + 县 city_status_array_str = stat_city_num_name_dict[city_ch+"_"+str(num)] city_status_array_str = city_status_array_str.strip(",").strip() city_status_array = city_status_array_str.split(",") city_status_ch_array = [] for city_status_str in city_status_array: # 获取省 province_status_str = int(city_status_str[0:2] + "0000") province_status_ch = CHINA_CITY_DICT.get(province_status_str) # 获取市 province_status_str2 = int(city_status_str[0:4] + "00") province_status_ch2 = CHINA_CITY_DICT.get(province_status_str2) # 获取县 city_status = int(city_status_str) city_status_ch = CHINA_CITY_DICT.get(city_status) # 合并 省 + 市 + 县 city_add = province_status_ch + "_" + province_status_ch2 + "_" + city_status_ch city_status_ch_array.append(city_add) # 输出结果格式:"3 朝阳 吉林省_长春市_朝阳区, 北京市_市辖区_朝阳区, 辽宁省_朝阳市_朝阳市" print num, " ", city_ch, " ", ", ".join(city_status_ch_array)
米扑项目请详见米扑导航:
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2018-03-24 05:05:48
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: 统计中国县级以上城市的重复名称 (米扑博客)