[Python] 2차원 리스트를 1차원 리스트로 변환하기

이 글은 2차원 리스트(이중 리스트)를 1차원 리스트로 변환하는 방법에 관한 기록입니다.

  • list comprehension 사용하기
  • sum() 함수 사용하기
  • itertools와 unpacking 사용하기
  • itertoolsfrom_iterable() 메소드 사용하기
  • functoolsreduce() 함수 사용하기
  • functoolsreduce() 함수와 operatoradd() 함수 사용하기
  • numpyflatten() 메소드 사용하기 (바깥쪽 리스트의 각 원소 즉 안쪽 리스트의 길이가 모두 동일한 경우에만 사용 가능)

Code

ls = [['A', 'B'], ['C', 'D'], ['E', 'F']]

1. list comprehension 사용하기

[el for ar in ls for el in ar]
['A', 'B', 'C', 'D', 'E', 'F']

2. sum() 함수 사용하기

sum(ls, [])
['A', 'B', 'C', 'D', 'E', 'F']

3. itertools와 unpacking 사용하기

import itertools

list(itertools.chain(*ls))
['A', 'B', 'C', 'D', 'E', 'F']

4. itertoolsfrom_iterable() 메소드 사용하기

import itertools

list(itertools.chain.from_iterable(ls))
['A', 'B', 'C', 'D', 'E', 'F']

5. functoolsreduce() 함수 사용하기

from functools import reduce

list(reduce(lambda x, y: x+y, ls))
['A', 'B', 'C', 'D', 'E', 'F']

6. functoolsreduce() 함수와 operatoradd() 함수 사용하기

from functools import reduce
from operator import add

list(reduce(add, ls))
['A', 'B', 'C', 'D', 'E', 'F']

7. numpyflatten() 메소드 사용하기

import numpy as np

np.array(ls).flatten().tolist()
['A', 'B', 'C', 'D', 'E', 'F']

태그:

카테고리:

업데이트:

댓글남기기