Python中字符串的字符分类
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) != -1
和s2 in s1
是等价的。