2009-08-31 5 views

답변

18

두 열에있는 데이터의 최대 길이를 알고있는 경우 형식 한정자를 사용할 수 있습니다. 예를 들어 이름은 최대 20 개 문자 긴 경우 가격이 탭 (일부 상황에서 예를 들어, 경우 하나를 일치하지 않습니다 당신이이 탭을 사용하는 것보다 더 나은

print "Name: %-20s Price: %10d" % (i.name, i.price) 

할 수있는 10 개 문자에 맞는 이름은 다른 것보다 상당히 길다).

일부 이름이 사용 가능한 공간에 맞지 않으면 . 형식 한정자를 사용하여 데이터를자를 수 있습니다. 예를 들어 이름 형식에 "% -20.20s"를 사용하면 긴 이름이 20 자 열에 맞게 잘립니다.

+0

우수. 내가 파이썬에서 거의 사용하지 않는 함수에 대한 또 다른 알림. 이 문제는 나 자신이 먼저 있었고 탭으로 수정했습니다. 이제 되돌아 가서 내 코드를 읽기 쉽게 만들 수 있습니다. –

9

Vinay가 말한 것처럼 문자열 형식 지정자를 사용합니다. 당신이 최대 길이를 알 수없는 경우

, 당신은 목록을 추가로 통과함으로써 그들을 찾을 수 있습니다

maxn, maxp = 0, 0 
for item in items: 
    maxn = max(maxn, len(item.name)) 
    maxp = max(maxp, len(str(item.price))) 

다음 대신 수의 '*'를 사용하고 인수로 계산 폭을 제공합니다.

for item in items: 
    print "Name: %-*s Price: %*d" % (maxn, item.name, maxp, item.price) 
0

str 개체에 rjust()/ljust() 메서드를 사용할 수도 있습니다.

관련 문제