Python에서 2차원 이상의 배열을 1차원 리스트로 변환하는 "flatten" 함수

2023.11.04 13:59 1,148 조회

Python에서 "flatten" 함수는 다차원 리스트(또는 배열)를 1차원 리스트로 변환하는 작업을 수행하는 함수를 가리킵니다.

이 작업을 통해 중첩된 리스트를 펼쳐서 모든 요소를 일렬로 나열하는 것이 가능해집니다.

일반적으로 중첩된 리스트의 각 요소에 대해 재귀적으로 동작하는 함수를 작성하여 리스트를 펼치거나,

리스트 컴프리헨션 등을 사용하여 간단한 방법으로 1차원 리스트로 변환할 수 있습니다.

예를 들어, 다음은 중첩된 리스트를 1차원 리스트로 펼치는 함수의 예시입니다:

def flatten(lst): 
      flat_list = [] for item in lst: if isinstance(item, list): 
      flat_list.extend(flatten(item)) else: 
      flat_list.append(item) return flat_list 

이 함수는 주어진 중첩된 리스트를 재귀적으로 순회하면서 요소를 1차원 리스트에 추가합니다.

예시:

nested_list = [1, [2, 3], [4, [5, 6]]] 
flattened_list = flatten(nested_list) print(flattened_list) 

# 출력: 
[1, 2, 3, 4, 5, 6] 

또는 리스트 컴프리헨션을 사용하여 다음과 같이 중첩된 리스트를 1차원 리스트로 변환할 수도 있습니다:

nested_list = [1, [2, 3], [4, [5, 6]]] 
flattened_list = [item for sublist in nested_list for item in sublist] 
print(flattened_list) 

# 출력:
[1, 2, 3, 4, 5, 6] 

두 가지 방법 모두 같은 결과를 제공합니다.


농산물 가격 예측 프로젝트 - 데이스쿨