728x90

어릴 때 난 이중 리스트를 하나의 리스트로 변환할 때

새로운 리스트 하나 만들어서 이중 for문 돌면서 하나하나 append 해주었다.

시간 복잡도가 너무 커져 배보다 배꼽이 큰 상황이었던 것이다!

 

이중 리스트를 단일 리스트로 간단하게 변환하는 두 가지 방법으로는

  1. sum() 함수 사용
  2. np.hstack() 함수 사용

이 있다.

 

 

아래에 이런 이중 리스트가 있다고 가정하고, 두 가지 방법에 대해 알아보자!

# 이중 리스트
double_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

1. sum() 함수 사용하기

나만 그런건지 모르겠지만 난 sum 함수는 단순히 합해주는 함수로만 생각했다.

하지만 이중 리스트를 하나의 리스트로 변환할 때

sum(이중 리스트, []) 형식으로 사용할 수 있다.

# 이중 리스트
double_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# 단일 리스트로 변환
single_list = sum(double_list, [])

print(single_list) # 결과: [1, 2, 3, 4, 5, 6, 7, 8, 9]

 

sum() 함수의 첫 번째 파라미터로는 이중 리스트를 넣고, 두 번째 파라미터로 빈 리스트([])를 넣어주면 이중 리스트를 펼친 단일 리스트로 만들어 준다.

 

 

2. np.hstack() 사용하기

Numpy를 사용해서도 이중 리스트를 하나의 리스트로 풀어낼 수 있다.

이때 사용하는 것이 np.hstack()이다.

import numpy as np

# 이중 리스트
double_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# 단일 리스트로
single_list = np.hstack(double_list)

print(single_list) # 결과: [1 2 3 4 5 6 7 8 9]

 

np.hstack()함수는 넘파이에서 주어진 리스트나 배열들을 수평으로 쌓아서 1차원 배열로 만들어주는 함수이다.

728x90

+ Recent posts