이 글은 프로그래머스의 파이썬을 파이썬답게 강의를 수강하고 작성하는 글입니다.
코딩을 하다보면, 이차원 리스트를 일차원 리스트로 만들어야 할 때가 있다.
보통 다음과 같이 반복문을 이용해 리스트를 더해간다.
my_list = [[1, 2], [3, 4], [5, 6]]
answer = []
for i in my_list:
answer += i
print(answer) # [1, 2, 3, 4, 5, 6]
파이썬의 다양한 기능을 사용하면, for문을 사용하지 않고도 리스트를 이어붙일 수 있다.
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 함수 이용
from functools import reduce
list(reduce(lambda x, y: x+y, my_list))
from functools import reduce
import operator
list(reduce(operator.add, my_list))
6. numpy 라이브러리의 flatten 이용
import numpy as np
np.array(my_list).flatten().tolist()
'Python' 카테고리의 다른 글
[Python] 두 변수의 값 바꾸기 - swap (0) | 2021.01.10 |
---|---|
[Python] flag OR for-else (0) | 2021.01.10 |
[Python] sequence type의 *연산 (0) | 2021.01.10 |
[Python] 알파벳 출력하기 - string 모듈 (0) | 2021.01.09 |
[Python] [Str 다루기] 문자열 정렬하기 - ljust, center, rjust (0) | 2021.01.09 |