본문 바로가기
파이썬

파이썬에서 멋진 열 출력 만들기

by º기록 2020. 9. 15.
반응형

내가 만든 명령 줄 관리 도구와 함께 사용하기 위해 Python에서 멋진 열 목록을 만들려고합니다.

기본적으로 다음과 같은 목록이 필요합니다.

[['a', 'b', 'c'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c']]

변화하다:

a            b            c
aaaaaaaaaa   b            c
a            bbbbbbbbbb   c

일반 탭을 사용하는 것은 각 행에서 가장 긴 데이터를 모르기 때문에 여기서 트릭을 수행하지 않습니다.

이것은 Linux의 'column -t'와 동일한 동작입니다.

$ echo -e "a b c\naaaaaaaaaa b c\na bbbbbbbbbb c"
a b c
aaaaaaaaaa b c
a bbbbbbbbbb c

$ echo -e "a b c\naaaaaaaaaa b c\na bbbbbbbbbb c" | column -t
a           b           c
aaaaaaaaaa  b           c
a           bbbbbbbbbb  c

이 작업을 수행하기 위해 다양한 파이썬 라이브러리를 둘러 보았지만 유용한 것을 찾을 수 없습니다.

 

해결 방법

 

data = [['a', 'b', 'c'], ['aaaaaaaaaa', 'b', 'c'], ['a', 'bbbbbbbbbb', 'c']]

col_width = max(len(word) for row in data for word in row) + 2  # padding
for row in data:
    print "".join(word.ljust(col_width) for word in row)

a            b            c            
aaaaaaaaaa   b            c            
a            bbbbbbbbbb   c   

이것이하는 일은 가장 긴 데이터 항목을 계산하여 열 너비를 결정한 다음 .ljust () 를 사용하여 각 열을 인쇄 할 때 필요한 패딩을 추가하는 것입니다.

 

참조 페이지 https://stackoverflow.com/questions/9989334

 

 

반응형

댓글