여러 리스트들의 값을 가로가 아닌 세로로 출력해야 할 때가 있다. 다음과 같이...
A = [a, b, c]
B = [10, 20, 30, 40]
C = [뭐]
이를 아래처럼 출력
a 10 뭐
b 20 none
c 30 none
none 40 none
이렇게 하려고 세로로 출력하는 엄청 귀찮은 함수를 짜야 한다면... 다음과 같이 해보시라!!!
import itertools
list(itertools.izip_longest(a, b, c))
원래 파이썬에서는 zip이라는 함수가 존재하는데(Ref), 하는 일은 위의 itertools의 izip_longest와 똑같지만 주어진 list들 중 가장 짧은 애의 길이로 출력해준다. 그래서 위의 예제에서는 첫번째 행만 출력되는 안습상황이 펼쳐진다. 가장 긴 리스트의 길이로 맞추어 출력하고 싶다면, itertools의 izip_longest를 쓰시길!
추가: 만약 리스트 하나에 A, B, C가 들어있다면 다음과 같이 합니다.
data = [A, B, C]
izip_longest(*data,fillvalue='')
http://stackoverflow.com/questions/10071342/python-how-to-write-blocks-of-data-in-columns
출처: http://stackoverflow.com/questions/1277278/python-zip-like-function-that-pads-to-longest-length
'Study > Computer' 카테고리의 다른 글
sqlite3에서 fts3 사용할 때 not operator 사용법 (0) | 2014.02.26 |
---|---|
python에서 line 줄바꿈없이 업데이트하기 (0) | 2014.01.23 |
networkx에서 gexf 사용하기 (0) | 2013.10.15 |
MS Word가 갑자기 비정상적으로 종료될 때 (0) | 2013.10.01 |
골치덩어리 unicode와 UTF-8 (1) | 2013.09.23 |