在 python 中,我想要一个返回等于输入的空格字符的 lambda。例如。
x=lambda x: return space x times
print "my message",x(10),"my message 2"
输出:
我的留言<10空格>我的留言2
这将满足我在特定情况下的需要。我可以为此编写一个函数,但如果可以这样做?
就像是:
x = lambda times:' '*times
print "my message{0}my message 2".format(x(10))
my message my message 2
@mux 的答案是正确的,但我认为实现完全相同的事情的更简单、更 Pythonic 的方法不需要 lambda:
def spacetimes(x): return x * ' '
然后:
print "my message",spacetimes(10),"my message 2"
当你想传递一个函数时,你通常需要一个 lambda。例如,我将通过将代码包装在一个名为的函数中来修改您的代码msg
:
def msg(spacefunc):
print "my message",spacefunc(10),"my message 2"
然后你可以使用 lambda 调用它:
msg(lambda x: x * ' ')
讨厌成为那个人,但如果它不必是 lambda ......如果你真正想要的只是空间那么为什么不
print "my message", ' '*6 ,"my message 2"
其中“6”可以由您更改。