본문 바로가기
파이썬/자주하는 질문

파이썬(Python) 2차원 리스트 합치기

by J-Build 2020. 9. 9.

2차원 리스트의 아이템들을 모두 합쳐서 1차원 리스트를 만드는 방법에 대해서 알아볼께요.

 

만약 아래과 같은 리스트가 있다면

list_2d = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]]

# 위의 2차원 리스트를 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 처럼 다 합치고 싶은거죠. 

 

itertools 모듈을 사용하면 쉽게 1차원 리스트로 만들 수 있습니다. 

import itertools
list_2d = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]]
merged = list(itertools.chain.from_iterable(list_2d))
print(merged)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

 

다른 모듈을 사용하지 않고 하는 방법은 다음과 같습니다. 

merged = [item for sublist in list_2d for item in sublist]
print(merged)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

 

 

하지만 위의 구문은 조금 복잡해 보입니다. 풀어서 다시 쓰면 다음과 같겠죠. 

merged = []
for sublist in list_2d:
    for item in sublist:
        merged.append(item)

print(merged)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

 

 

댓글