1. sum 함수를 사용하여 1차원 배열로 변환하기
num_list = [[0, 1, 1, 0, 1, 0, 0], [0, 1, 1, 0, 1, 0, 1]
# 2차원 배열에서 1차원 배열로
num_list = sum(num_list, [])
결과값은
num_list => [0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1]
이렇게 변환될 수 있는 이유는 sum 함수의 계산 과정에 있다.
보통 sum 함수는 sum(iterable)로 많이 사용되어, iterable 객체에 있는 요소들의 합을 반환해준다.
하지만, sum 함수에는 2개의 파라미터를 넣을 수 있다.
sum(iterable, start)
start는 간단히 말하면, iterable의 sum 값에 start를 더해줄 것이라는 말이다.
그럼 sum(num_list, [])는 [] + [0, 1, 1 ~] + [0, 1, 1 ~]이 된다.
빈 리스트 + 데이터가 들어 있는 리스트 + 데이터가 들어 있는 리스트인 것이다.
빈 리스트는 여기에서 아무런 영향도 주지 않고, [0, 1, 1 ~] + [0, 1, 1~] 즉, 리스트끼리의 합은 합병이 되기에
1차원 배열로 변환이 되는 것이다.
2. List comprehension을 이용한 배열의 차원 변환(2차원 -> 1차원)
num_list = [data for inner_data in num_list for data in inner_data]
위는 아래와 같다. (위의 num_list라는 변수명을 arr로 바꾼 것이다.)
for inner_data in num_list:
for data in inner_data:
arr.append(data)
'Hacks' 카테고리의 다른 글
파이썬 itertools의 조합 Combinations 구현 (0) | 2022.11.10 |
---|---|
파이썬 itertools의 순열 Permutations 구현 (0) | 2022.11.10 |
파이썬 내장 함수 zip 구현 (0) | 2022.11.10 |
dictionary에 값 추가하기 (0) | 2022.11.01 |
문자열 안에 있는 숫자를 훼손 없이 추출하는 방법 (0) | 2022.10.24 |