python lambda打印空间

时间:2012-12-05 11:59:40

标签: python lambda

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

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

输出:

  

我的消息< 10 space> my message 2

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

3 个答案:

答案 0 :(得分:2)

类似的东西:

x = lambda times:' '*times
print "my message{0}my message 2".format(x(10))         
my message          my message 2

答案 1 :(得分: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 * ' ')

答案 2 :(得分:0)

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

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

你可以改变'6'。