我想写一个简单的函数来识别 palindromes :
>>> def palindrome(s):
return s == s[::-1]
它工作正常,但区分大小写,我可以解决这个问题:
>>> def palindrome(s):
return s.lower() == s[::-1].lower()
>>> palindrome('Aba')
True
但我认为它不是很优雅。我尝试使用 lambda 表达式将输入小写,但我做错了,不知道如何解决:
>>> def palindrome(lambda s : s.lower()):
return s == s[::-1]
SyntaxError: invalid syntax
最佳答案
您不能使用 lambda 表达式来描述应该对输入参数执行的操作(但是您可以使用 lambda
来定义默认值)。你可以做两件事:
在函数头部定义一个函数:
def palindrome(s): s = s.lower() return s == s[::-1]
使用装饰器:
def caseinsensitive(f): def helper(s): s = s.lower() return f(s) return helper
然后将您的
回文
定义为:@caseinsensitive def palindrome(s): return s == s[::-1]
在这里,您可以重用
@caseinsensitive
来定义执行此操作的所有函数,作为第一步。
关于python - 在函数定义中正确使用 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30689153/