如何使用Python识别中文或英文姓名

2 投票
2 回答
1723 浏览
提问于 2025-05-16 18:45

给定一堆名字,我们怎么才能分辨哪些是中文名字,哪些是英文名字呢?对于中文名字,我列了一个中文姓氏的名单来帮助识别中文名字。比如,李小龙的“李”就是一个中文姓,所以我们认为李小龙是个中文名字。不过,中文姓氏的名单很长,有没有更好的方法呢?如果你对中文名字不太了解,你可以说说你是怎么区分英文名字和其他名字的,比如法文名字、意大利名字等等。

相关问题:

  • 暂无相关问题
暂无标签

2 个回答

0

这可真是个麻烦事。

如果教授的名字是用中文写的,显而易见的办法就是检查名字里的每个字符。这个回答给了我们一个线索,很多常用的unicode“中文”字符的范围是在19968到40959之间。

所以:

def is_chinese(var):
    if ord(var) >= 19968 and ord(var) <= 40959:
        return True

如果你假设的中文教授的名字里有这些范围内的字符,你只需要在这个范围内搜索几个字符,就能得到一个合理的答案。

不过,如果你已经有了一份中文名字的列表,@SheepPerplexed可能提供了最快的方法。

2

如果你有一份典型的中文和英文名字的列表,而你关心的只是性能问题,我建议你把这些列表转换成集合。然后在这两个集合中检查某个名字是否存在,这样比在一个很大的列表中查找某个元素要快得多。

撰写回答