CODE

[python] 2차원 배열에서 1차원으로 만들기

sed 2026. 4. 21. 00:42
SMALL

파이썬의 다양한 기능을 사용하면, for 문을 사용하지 않고도 리스트를 이어 붙일 수 있습니다.

my_list = [[1, 2], [3, 4], [5, 6]]

# 방법 1 - sum 함수
answer = sum(my_list, [])

# 방법 2 - itertools.chain
import itertools
list(itertools.chain.from_iterable(my_list))

# 방법 3 - itertools와 unpacking
import itertools
list(itertools.chain(*my_list))

# 방법 4 - list comprehension 이용
[element for array in my_list for element in array]

# 방법 5 - reduce 함수 이용 1
from functools import reduce
list(reduce(lambda x, y: x+y, my_list))

# 방법 6 - reduce 함수 이용 2
from functools import reduce
import operator
list(reduce(operator.add, my_list))

제한적으로 사용 가능한 방법

아래의 방법은 각 원소의 길이가 동일한 경우에만 사용 가능합니다.

# 방법 7 - numpy 라이브러리의 flatten 이용
import numpy as np
np.array(my_list).flatten().tolist()

예를 들어 다음과 같은 리스트는 편평하게 만들 수 있고

  • [[1], [2]]
  • [[1, 2], [2, 3], [4, 5]]

다음과 같이 같이 각 원소의 길이가 다른 리스트는 편평하게 만들 수 없습니다.

  • [['A', 'B'], ['X', 'Y'], ['1']]



LIST

'CODE' 카테고리의 다른 글

백준 BOJ 11866 요세푸스 문제 0  (0) 2026.04.29
백준 BOJ 2164 카드2  (0) 2026.04.28
n진수 만들기  (0) 2026.04.24
LEETCODE 풀 문제 모음  (0) 2026.04.23
오늘의 톺아보기  (0) 2026.04.22