Python中字符串的字符分类

-4 投票
1 回答
876 浏览
提问于 2025-04-16 22:05
def isLower(ch):
    return ch in string.lowercase

def isLower(ch):
    return 'a' <= ch <= 'z'

def isLower(ch):
    return string.find(string.lowercase, ch) != -1

你觉得哪个版本的 isLower 会最快?除了速度之外,还有什么其他原因让你更喜欢其中一个版本呢?

1 个回答

12

str(还有unicode)已经有一个叫islower的方法,这个方法可以用在多个字符的字符串上。unicode版本还能正确处理unicode字符,而你之前的尝试只考虑了ASCII字符(这在很多应用中是个大错误,对于其他情况来说,根本没有理由限制使用ASCII,因为更通用的版本代码量甚至更少,因为它是内置的)。

另外要注意的是,string模块现在大部分已经过时了,很多功能都被str的方法替代了。例如,string.find现在用str.find方法来代替。而且如果我没记错的话,s1.find(s2) != -1s2 in s1是等价的。

撰写回答