3

在 python 中,我想要一个返回等于输入的空格字符的 lambda。例如。

x=lambda x: return space x times
print "my message",x(10),"my message 2"

输出:

我的留言<10空格>我的留言2

这将满足我在特定情况下的需要。我可以为此编写一个函数,但如果可以这样做?

4

3 回答 3

2

就像是:

x = lambda times:' '*times
print "my message{0}my message 2".format(x(10))         
my message          my message 2
于 2012-12-05T12:02:22.483 回答
1

@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 * ' ')
于 2012-12-05T12:15:32.007 回答
0

讨厌成为那个人,但如果它不必是 la​​mbda ......如果你真正想要的只是空间那么为什么不

print "my message", ' '*6 ,"my message 2"

其中“6”可以由您更改。

于 2012-12-05T14:09:14.337 回答