如何使用Python识别中文或英文姓名
给定一堆名字,我们怎么才能分辨哪些是中文名字,哪些是英文名字呢?对于中文名字,我列了一个中文姓氏的名单来帮助识别中文名字。比如,李小龙的“李”就是一个中文姓,所以我们认为李小龙是个中文名字。不过,中文姓氏的名单很长,有没有更好的方法呢?如果你对中文名字不太了解,你可以说说你是怎么区分英文名字和其他名字的,比如法文名字、意大利名字等等。
相关问题:
- 暂无相关问题
2 个回答
0
这可真是个麻烦事。
如果教授的名字是用中文写的,显而易见的办法就是检查名字里的每个字符。这个回答给了我们一个线索,很多常用的unicode“中文”字符的范围是在19968到40959之间。
所以:
def is_chinese(var):
if ord(var) >= 19968 and ord(var) <= 40959:
return True
如果你假设的中文教授的名字里有这些范围内的字符,你只需要在这个范围内搜索几个字符,就能得到一个合理的答案。
不过,如果你已经有了一份中文名字的列表,@SheepPerplexed可能提供了最快的方法。
2
如果你有一份典型的中文和英文名字的列表,而你关心的只是性能问题,我建议你把这些列表转换成集合。然后在这两个集合中检查某个名字是否存在,这样比在一个很大的列表中查找某个元素要快得多。