2012-12-05 3 views
3

파이썬에서 나는 공백 문자를 입력과 같게하는 람다를 원한다. 예 : .파이썬 람다 인쇄 공간

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

출력 :

내 메시지 < 10 공간> 내 메시지를이 특정 상황에서 나의 필요를 충족합니다 2

. 이 기능을 쓸 수는 있지만 할 수 있다면?

답변

2

뭔가 같은 :

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

변수 이름을 함수 이름과 다른 것으로 부를 가치가 있습니다 ... –

+1

물론이 경우에는 "10 *"을 직접 삽입하는 것이 쉽고 투명합니다. (하지만 OP가 요구 한 것이 맞습니다.) – Stuart

+0

@Stuart 맞습니다. 추가하고 싶었지만 OP가 다른 상황에서 필요하다고 OP가 깨달았습니다. – iabdalkader

1

@mux의 대답은 정확하지만 나는 같은 일이 람다 필요하지 않습니다 더 단순하고 파이썬 방법은 정확하게 달성하기 위해 생각 :

def spacetimes(x): return x * ' ' 

는 : 당신이 주변에 함수를 통과 할 때

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

당신은 일반적으로 람다 필요합니다.

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

당신이 람다 사용하여 호출 할 수 있습니다 : 예를 들어, 내가 함수에 포장하여 코드를 수정할 수 있습니다는 msg라는 그 남자가 될

msg(lambda x: x * ' ') 
0

증오를하지만, 경우 람다 일 필요는 없습니다 ... 실제로 원하는 모든 공간이 있다면 왜 안되는가요?

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

여기서 '6'은 사용자가 변경할 수 있습니다.