本文目录导读:

下面是一个使用 Python 脚本生成随机中文名的示例,它适用于生成简短、常见的姓名(姓 + 1 或 2 个字的姓名)。
简单实现(常用字)
import random
# 常见姓氏(百家姓前一部分)
surnames = [
"赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈", "褚", "卫",
"蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许", "何", "吕", "施", "张",
"孔", "曹", "严", "华", "金", "魏", "陶", "姜", "戚", "谢", "邹", "喻",
"柏", "水", "窦", "章", "苏", "潘", "葛", "范", "彭", "郎", "鲁", "韦",
"昌", "马", "苗", "凤", "花", "方", "俞", "任", "袁", "柳", "酆", "鲍",
"史", "唐", "费", "廉", "岑", "薛", "雷", "贺", "倪", "汤", "滕", "殷",
"罗", "毕", "郝", "邬", "安", "常", "乐", "于", "时", "傅", "皮", "卞",
"齐", "康", "伍", "余", "元", "卜", "顾", "孟", "平", "黄", "和", "穆"
]
# 常见名字用字(多为中性、美好寓意)
given_names_pool = [
"伟", "芳", "娜", "敏", "静", "丽", "强", "磊", "军", "洋",
"勇", "艳", "杰", "娟", "涛", "明", "超", "秀", "霞", "平",
"刚", "桂", "英", "华", "慧", "玉", "秀", "文", "辉", "玲",
"婷", "宇", "鑫", "琳", "浩", "雪", "悦", "轩", "睿", "涵",
"彤", "琪", "霖", "思", "瑶", "欣", "瑶", "晨", "辰", "希",
"俊", "美", "毅", "力", "志", "洁", "冰", "波", "涛", "博"
]
def random_name():
surname = random.choice(surnames)
# 随机决定名字是单字还是双字(各占50%概率)
if random.random() < 0.5:
given = random.choice(given_names_pool)
else:
given = random.choice(given_names_pool) + random.choice(given_names_pool)
return surname + given
# 生成10个测试
for _ in range(10):
print(random_name())
运行效果示例(每次不同):
王俊
李雪瑶
陈强
张伟
刘浩宇
杨芳
赵明
孙玲
周文轩
吴磊
更实用的版本(字数可变、男女名倾向)
import random
surnames = [
"赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈", "褚", "卫",
"蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许", "何", "吕", "施", "张",
"孔", "曹", "严", "华", "金", "魏", "陶", "姜", "戚", "谢", "邹", "喻"
]
# 男性名字常用字
male_given = ["伟", "强", "磊", "军", "勇", "杰", "涛", "明", "超", "辉",
"刚", "毅", "俊", "博", "浩", "宇", "轩", "睿", "晨", "辰"]
# 女性名字常用字
female_given = ["芳", "娜", "敏", "静", "丽", "艳", "娟", "秀", "霞", "玲",
"婷", "琳", "雪", "悦", "涵", "彤", "琪", "瑶", "欣", "思"]
def random_name(gender=None):
"""
:param gender: 'male' 或 'female', 不指定则随机性别
"""
surname = random.choice(surnames)
if gender is None:
gender = random.choice(['male', 'female'])
pool = male_given if gender == 'male' else female_given
# 随机名长:1或2个字 (80%双字,20%单字)
if random.random() < 0.2:
given = random.choice(pool)
else:
given = random.choice(pool) + random.choice(pool)
return surname + given, gender
# 生成5个男性名
print("男性名:")
for _ in range(5):
name, _ = random_name('male')
print(name)
# 生成5个女性名
print("\n女性名:")
for _ in range(5):
name, _ = random_name('female')
print(name)
特点:
- 区分性别用字库
- 双字名占80%,单字名占20%(可调整比例)
进阶:利用 Unicode 中文字段(无需内置词库)
如果不想要固定的姓名字库,可以利用 Unicode 中常用汉字范围(如 4E00-9FFF)中的一部分作为姓氏/名字,但这会产生一些生僻字(可能不像真实人名)。
import random
def random_hanzi(count=1):
"""从U+4E00到U+9FA5的常用汉字中随机取count个字"""
code_points = [random.randint(0x4E00, 0x9FA5) for _ in range(count)]
return ''.join(chr(cp) for cp in code_points)
def random_name_unicode():
surname = random_hanzi(1)
name_len = random.randint(1, 2)
given = random_hanzi(name_len)
return surname + given
for _ in range(5):
print(random_name_unicode())
注意:这种方法不保证每个字都是常见姓名字,可能会有“忄”“丿”等较少用于人名的汉字,更适合游戏角色或随机测试数据生成。
推荐:使用成熟库(faker)
如果你希望生成更像真人的随机中文名,可以使用 Python 的第三方库 faker,它内置了当地文化数据:
pip install faker
from faker import Faker
fake = Faker('zh_CN')
for _ in range(5):
print(fake.name())
faker 内部使用了真实的中文姓名分布数据,生成的姓名质量最高(真实感强、无生僻错误字)。
- 最简便:
faker库。 - 最可控:自己维护姓名字典 + 随机逻辑(如示例1、2)。
- 最随机但质量低:Unicode 随机取值(示例3)。
根据你的需求(生成游戏ID、测试数据、还是接近真人的中文名)选择合适的方案。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播