如果有一堆名字,我们如何知道哪些是中文名字,哪些是英文名字呢?对于中国人的名字,我建立了一个中国姓氏的列表来查找中国人的名字。比如李小龙,李小龙是中国人的姓,所以我们认为李小龙是中国人的名字。然而,中国人的姓氏名单很大。有没有更好的方法呢?如果你不熟悉中文名字,你可以告诉你如何将英文名字与其他一些名字区分开来,比如法国名字,意大利名字等等。
发布于 2017-04-29 00:16:00
如果您有典型的中文和英文名称列表,并且问题仅限于性能,我建议您将列表转换为集合,然后请求这两个集合中的成员,因为这比找出元素是否存在于大型列表中要快得多。
发布于 2017-04-29 00:55:51
好吧,这是个难题。
如果教授的名字是用中文写的,最明显的答案是检查名字中的每个字符。这个answer给了我们一个线索,许多常用的unicode“中文”字符都在19968 - 40959范围内。
因此:
def is_chinese(var):
if ord(var) >= 19968 and ord(var) <= 40959:
return True如果你假设的中国教授的名字是在他们简历的某个地方用这些范围内的字符写的,你只需要搜索这个范围内的几个字符就可以得到一个合理的答案。
然而,如果你已经有了一个中文名字列表,@SheepPerplexed可能提供了最快的方式。
https://stackoverflow.com/questions/43684654
复制相似问题