我有一个正则表达式,它消除了所有非alpha字符
def genLetters(string):
regex = re.compile('[^a-zA-Z]')
newString = regex.sub("", string)
如果我想使这个字符串小写,我必须定义一个新字符串(因为它们是不可变的),如lowerString = newString.lower()
在我看来,必须生成第二个字符串才能执行“to lower”,这似乎很愚蠢,但是如果我从regex中删除A-Z
,我会丢失所有不需要的大写字符。我只想要一个小写的最终产品。你知道吗
这可以不用lowerString
或者更酷的工具来完成吗?可以在一行中完成吗?你知道吗
试着把“函数返回”想象成“用函数的返回值替换函数调用”。例如,在上面的例子中,首先计算
regex.sub
,您应该想象该调用被返回值替换:这意味着您可以对返回值为
regex.sub
的字符串执行所有操作。还可以对返回值lower()
调用方法。你知道吗这也意味着您可以在一行中完成整个功能!你知道吗
尽管这可能不太可读。你知道吗
顺便说一下,python中的标准命名约定不是驼峰大小写,而是带下划线的,因此
newString
应该是new_string
。你知道吗相关问题 更多 >
编程相关推荐