[Python] numpy(외부 라이브러리) 없이 2차원 리스트 세로(열) 슬라이싱하기

오도원공육사·2021년 8월 30일
0

파이썬

목록 보기
3/11

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]
]

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]

2. zip

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로 형변환한 것이다.

profile
잘 먹고 잘살기

0개의 댓글