2차원 리스트를 1차원 리스트로


반복문

my_list = [[1, 2], [3, 4], [5, 6]]
answer = []
for element in my_list:
    answer += element

다른 방법

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()

가장 애용하는 방법

answer = sum(my_list, [])

좋은 웹페이지 즐겨찾기