2017-05-11 17 views
1

의 변수 번호를 인쇄 + 형식을 일반화하고, 나는 그들 포맷 인쇄 할, 내가 할 수있는 :나는 수레의 3 튜플이있는 경우 입력

print('{:.2f} {:.2f} {:.2f}'.format(*my_tuple)) 

을 그리고는 n 튜플이있는 경우 수레, 나는지도를 사용하고와 동일한 서식 얻을 수 있습니다 궁금

print(*map(lambda x: '{:.2f}'.format(x), my-tuple)) 

하지만, 이미 포맷 내가을 원하는 않도록 print 함수 자체를 변경하는 방법이 있는지를 여분의 개입없이 수레를 위해. 나는 문서에서 그걸 발견 할 수 없었다.

나는 튜플에있는 모든 용어가 수레있는 경우도 작동 할 간단한 print(*my-tuple)을 가지고 싶습니다 .

print을 조정할 수 있어야하는 것처럼 보였으므로이 질문을하고 있습니다. 그래서 나는 여기서 간단한 것을 놓치고 있다고 느낍니다.

+0

당신이 입력 - 출력 예를 제공 할 수 있습니다 변경하거나 방법을 print() 작품을 재정의 싶지 않을 것이다 그리고 당신은 .. 필요가 없습니다? –

답변

1

왜 당신 자신을 정의하지 않습니까? 그래서 같이 : 결국

def my_print(data): 
    print(', '.join('{:.2f}'.format(x) if type(x)==float else str(x) for x in data)) 

my_print((1.23, 51212., 5.151252, 1.25, 125.1545, .5314451, 5.1251, 5,.125 , 'sdgsdgdsg')) 
# prints: 
# 1.23, 51212.00, 5.15, 1.25, 125.15, 0.53, 5.13, 5, 0.12, sdgsdgdsg 

+0

+1, OP –

+0

에 더 가까운 구문을 사용하려면'print (* ('{{: 2f}'. 형식 (x) === 데이터에서 x의 경우 == float else str (x) 예, 이것은 갈 길과 같아요.하지만 매번 my_print를 호출 할 필요없이 인쇄용으로 변경할 수있는 일종의 기본값을 기대했습니다. 또한, 오늘 나는': .2f', 내일': .4f'을 원할지도 모른다. 오늘 나는 표준 출력, 내일의 파일 출력 등을 원할 수있다. – dangom

+0

@ numou는 아마도 float 표현 방식을 설정할 수있는 비슷한 배경을 가지고있을 것이다. 예를 들어 np.set_printoptions (formatter = { 'float': '{: .2f}'. format})'과 같은 것을 할 수 있습니다. 모든 연속 된 인쇄물은이 규칙에 따라 수레를 따릅니다. 나는 이것이 어떻게 구현되는지 모르겠다. –