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]
'파이썬 > 자주하는 질문' 카테고리의 다른 글
파이썬(Python) 리스트 for 루프 중(iteration) 특정 아이템 제거하기 (0) | 2020.09.10 |
---|---|
파이썬(Python) 함수 참조에 의한 호출? (0) | 2020.09.10 |
파이썬(Python) 리스트 복사하기 (0) | 2020.09.09 |
파이썬(Python) 사용자 키보드 입력받는 방법 (0) | 2020.09.08 |
파이썬(Python) 슬라이싱(slice) 이해하기 (0) | 2020.09.08 |
댓글