여러 리스트들의 값을 가로가 아닌 세로로 출력해야 할 때가 있다. 다음과 같이...


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

+ Recent posts