콘텐츠로 건너뛰기

파이썬에서 리스트를 평탄화 하는 방법

[

Python에서 리스트를 평탄화하는 방법

데이터를 처리할 때 종종 데이터를 중첩된 리스트의 형태로 가지고 있을 수 있습니다. 이러한 데이터를 Python에서는 **평탄화(flatten)**해서 한 차원의 리스트로 변환하는 작업을 자주 수행합니다. 리스트를 평탄화하는 것은 행렬과 같은 다차원 리스트를 한 차원의 리스트로 변환하는 것을 의미합니다.

평탄화된 리스트가 무엇인지 좀 더 명확히 설명하기 위해 다음과 같은 숫자 값 행렬이 있다고 가정해 봅시다.

matrix = [
[9, 3, 8, 3],
[4, 5, 2, 8],
[6, 4, 3, 1],
[1, 0, 4, 5],
]

matrix 변수는 네 개의 중첩된 리스트를 포함하는 Python 리스트를 저장합니다. 각 중첩된 리스트는 행을 나타냅니다. 행은 각각 네 개의 항목이나 숫자를 저장합니다. 이제 이 행렬을 다음과 같은 리스트로 변환하고 싶다고 가정해 봅시다.

[9, 3, 8, 3, 4, 5, 2, 8, 6, 4, 3, 1, 1, 0, 4, 5]

이렇게 행렬을 평탄화하고 위의 예시와 같은 한 차원의 리스트를 얻으려면 어떻게 해야 할까요? 이 튜토리얼에서는 Python에서 이 작업을 어떻게 수행하는지 알아보겠습니다.

for 루프를 사용하여 리스트 평탄화하기

Python에서 리스트를 평탄화하는 방법은 무엇일까요? 일반적으로 리스트를 평탄화하려면 다음과 같은 단계를 명시적으로 또는 암시적으로 실행할 수 있습니다:

  1. 평탄화된 데이터를 저장할 빈 리스트를 생성합니다.
  2. 원본 리스트의 각 중첩된 리스트 또는 하위 리스트를 반복합니다.
  3. 현재 하위 리스트의 각 항목을 평탄화된 데이터 리스트에 추가합니다.
  4. 평탄화된 데이터가 포함된 결과 리스트를 반환합니다.

matrix 예시를 계속 사용하여 다음과 같은 방법으로 이러한 단계를 Python 코드로 변환해 보겠습니다. 이 코드에서는 for 루프와 .extend() 메서드를 사용합니다.

def flatten_extend(matrix):
flat_list = []
for row in matrix:
flat_list.extend(row)
return flat_list

flatten_extend() 함수 내부에서는 먼저 flat_list라는 비어있는 새로운 리스트를 만듭니다. 이 리스트는 matrix에서 추출한 평탄화된 데이터를 저장하는 데 사용됩니다. 그런 다음 루프를 시작하여 matrix의 내부, 즉 중첩된 리스트를 반복합니다. 이 예제에서는 현재 중첩된 리스트를 나타내기 위해 row라는 이름을 사용합니다.

각 반복에서 .extend()를 사용하여 현재 하위 리스트의 내용을 flat_list에 추가합니다. 이 메서드는 반복 가능한 객체를 인수로 사용하고 해당 객체의 항목을 대상 리스트의 끝에 추가합니다.

이제 다음 코드를 실행하여 함수가 원하는 작업을 수행하는지 확인해 보세요:

print(flatten_extend(matrix)) # [9, 3, 8, 3, 4, 5, 2, 8, 6, 4, 3, 1, 1, 0, 4, 5]

위의 코드에서 원하는 결과가 출력되는지 확인하십시오. 위의 코드에서 생성한 flatten_extend() 함수는 원본 리스트를 평탄화하고 결과 리스트를 반환합니다.

이와 같은 방법으로 리스트를 평탄화할 수 있습니다. 이러한 방법들을 참고하여 Python에서 리스트를 평탄화하는 데 도움이 되기를 바랍니다!