파이썬에서 리스트 평탄화하는 방법
Python 리스트 펼치기(flatten) 방법
간혹 데이터 작업을 할 때, 데이터가 중첩된 리스트 형태로 주어질 때가 있습니다. 이때 일반적인 작업 중 하나는 이 리스트를 1차원 리스트로 변환하는 것입니다. 리스트를 펼치는(플래튼하는) 작업은 행렬과 같은 다차원 리스트를 1차원 리스트로 변환하는 것을 의미합니다.
이 개념을 더 잘 설명하기 위해, 다음과 같은 숫자값의 행렬이 있다고 가정해봅시다:
matrix
변수는 네 개의 중첩된 리스트를 포함하는 Python 리스트를 가지고 있습니다. 각 중첩 리스트는 행을 나타냅니다. 행은 각각 네 개의 항목 또는 숫자를 가지고 있습니다. 이제 이 행렬을 다음과 같은 리스트로 변환하려고 합니다:
변환된 이런 식으로 행렬을 펼치하고 어떻게 1차원 리스트를 얻을 수 있을까요? 이 튜토리얼에서는 Python에서 이 작업을 어떻게 수행하는지 알아보겠습니다.
for 루프를 사용하여 리스트의 리스트를 펼치는 방법
Python에서 리스트의 리스트를 어떻게 펼칠 수 있을까요? 일반적으로 리스트의 리스트를 펼치려면 다음 단계를 명시적으로 또는 암묵적으로 수행할 수 있습니다:
- 펼쳐진 데이터를 저장하기 위해 새로운 빈 리스트를 생성합니다.
- 원본 리스트의 각 중첩된 리스트 또는 서브리스트를 반복합니다.
- 현재 서브리스트의 각 항목을 펼쳐진 데이터의 리스트에 추가합니다.
- 펼쳐진 데이터를 반환하는 결과 리스트를 반환합니다.
그런 다음, flatten_extend()
라는 이름의 함수를 사용하여 이 단계를 Python 코드로 전환해볼 수 있습니다. 이 함수는 for
루프와 .extend()
메서드를 사용하는 방법을 사용하여 이러한 단계를 수행합니다:
flatten_extend()
함수 내부에서는 먼저 flat_list
라는 새로운 빈 리스트를 만듭니다. 이 리스트는 matrix
에서 추출한 펼쳐진 데이터를 저장하는 데 사용됩니다. 그런 다음, matrix
의 내부 또는 중첩된 리스트에 대해 반복하는 루프를 시작합니다. 이 예제에서는 현재 중첩된 리스트를 나타내기 위해 row
라는 이름을 사용합니다.
각 반복에서 .extend()
를 사용하여 현재 서브리스트의 내용을 flat_list
에 추가합니다. 이 메서드는 인자로 반복 가능한(iterable) 객체를 취하고 해당 항목을 대상 리스트의 끝에 추가합니다.
이제 다음 코드를 실행하여 함수가 작동하는지 확인해보세요:
코드에 실행 가능한 샘플을 자세하게 포함시켜보세요.