3

Pythonでは、入力と等しいスペース文字を返すラムダが必要です。例えば。

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の答えは正しいですが、まったく同じことを実現するためのより単純でよりPython的な方法では、ラムダは必要ないと思います。

def spacetimes(x): return x * ' '

それから:

print "my message",spacetimes(10),"my message 2"

関数を渡したい場合は、通常、ラムダが必要です。たとえば、次の関数でコードをラップしてコードを修正しますmsg

def msg(spacefunc):
    print "my message",spacefunc(10),"my message 2"

次に、ラムダを使用して呼び出すことができます。

msg(lambda x: x * ' ')
于 2012-12-05T12:15:32.007 に答える
0

その男になるのは嫌いですが、ラムダである必要がない場合...実際に必要なのはスペースだけなら、なぜですか?

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

ここで、「6」はユーザーが変更できます。

于 2012-12-05T14:09:14.337 に答える