numpy를 사용하면 슬라이싱 연산자[:]로 열까지 파싱이 가능하다. 그러나 코딩테스트를 할 때는 일반적으로 외부 라이브러리를 사용할 수 없다. 외부 라이브러리를 사용하지 않고 2차원 배열에서 열을 파싱하는 방법을 알아보자.
example = [
[0,0,0,0,0],
[0,0,1,0,3],
[0,2,5,0,1],
[4,2,4,4,2],
[3,5,1,3,1]
]
cols = []
for row in example:
cols.append(row[0])
# [0, 0, 0, 4, 3]
# list comprehension
cols = [row[0] for row in example]
# [0, 0, 0, 4, 3]
cols = list(zip(*example))
# [(0, 0, 0, 4, 3), (0, 0, 2, 2, 5), (0, 1, 5, 4, 1), (0, 0, 0, 4, 3), (0, 3, 1, 2, 1)]
example 2차원 리스트를 *로 언패킹(unpacking)을 하면 각 행들을 리스트로 분리한다. 이것을 zip함수로 동일한 인덱스의 있는 값들을 합친(zipping)다. 그 후 생성된 zip object를 list로 형변환한 것이다.