SeouliteLab

[Python/파이썬] 중첩된 리스트를 평탄화하여 1차원 리스트로 변환하기 본문

프로그래밍

[Python/파이썬] 중첩된 리스트를 평탄화하여 1차원 리스트로 변환하기

Seoulite Lab 2024. 2. 29. 17:03

중첩된 리스트를 평탄화하여 1차원 리스트로 변환하는 것은 파이썬에서 종종 필요한 작업 중 하나입니다. 이를 통해 리스트의 중첩된 구조를 제거하고 데이터를 단순화할 수 있습니다. 여러 가지 방법으로 중첩된 리스트를 평탄화할 수 있습니다. 이를 예제와 함께 살펴보겠습니다.

1: 리스트 comprehension과 재귀 함수를 사용하여 평탄화

# 중첩된 리스트를 평탄화하는 함수 정의
def flatten_list(nested_list):
    flattened_list = []
    for element in nested_list:
        if isinstance(element, list):
            flattened_list.extend(flatten_list(element))
        else:
            flattened_list.append(element)
    return flattened_list

# 중첩된 리스트
nested_list = [[1, 2, [3, 4]], [5, 6], 7, [8, 9]]

# 평탄화된 리스트 생성
flat_list = flatten_list(nested_list)

print("평탄화된 리스트:", flat_list)

2: itertools.chain을 사용하여 평탄화

import itertools

# 중첩된 리스트
nested_list = [[1, 2, [3, 4]], [5, 6], 7, [8, 9]]

# itertools.chain을 사용하여 평탄화된 리스트 생성
flat_list = list(itertools.chain.from_iterable(nested_list))

print("평탄화된 리스트:", flat_list)

3: 리스트 comprehension을 사용하여 평탄화

# 중첩된 리스트
nested_list = [[1, 2, [3, 4]], [5, 6], 7, [8, 9]]

# 리스트 comprehension을 사용하여 평탄화된 리스트 생성
flat_list = [element for sublist in nested_list for element in (sublist if isinstance(sublist, list) else [sublist])]

print("평탄화된 리스트:", flat_list)

위의 예제에서는 중첩된 리스트를 평탄화하는 세 가지 방법을 보여주었습니다. 첫 번째 방법은 리스트 comprehension과 재귀 함수를 사용하는 것이며, 두 번째 방법은 itertools 모듈의 chain 함수를 사용하는 것입니다. 세 번째 방법은 리스트 comprehension을 사용하여 중첩된 리스트를 평탄화하는 것입니다.