今天才知道,中国一共333个市一级行政单位。数据来源是 民政部首页 ➡ 民政数据

import re

def short_name(name):
    m = re.search(r'''
        (\S+?)
        (?:
            壮族|回族|维吾尔|省|自治区|特别|  # 省
            (?:侗|傈僳|傣|哈尼|回|土家|壮|布依|彝|景颇|朝鲜|白|羌|苗|藏)族|
            蒙古|柯尔克孜|哈萨克|
            地区|市|盟|自治州|自治县
        ).*$
    ''', name, re.VERBOSE)
    if m:
        return m.group(1)
    return name

这段代码的作用是把比如 "黔南布依族苗族自治州" 这样的名字,缩短成 "黔南"

有一个小坑是,市一级行政区包含 蒙古|柯尔克孜|哈萨克 这三个名字后面没有 字。

有一些 XX林区 XX矿区 什么的,我觉得保留比较好。

Python的 re.VERBOSE 真是好东西!