콘텐츠로 건너뛰기

파이썬 리스트의 리스트로 어떻게 사용/수정하는지?

[

Python 리스트의 리스트 펼치기

Python에서 데이터 작업을 할 때, 데이터를 중첩된 리스트로 가지고 있을 수 있습니다. 일반적인 작업 중 하나는 Python에서 중첩된 리스트를 1차원 리스트로 펼치는(flatten) 것입니다. 리스트 펼치기는 행렬과 같은 다차원 리스트를 1차원 리스트로 변환하는 작업을 말합니다.

리스트를 펼치는 것을 더 명확하게 설명하기 위해, 다음과 같은 숫자 값의 행렬이 있다고 가정해 봅시다:

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

위와 같이 행렬을 어떻게 펼칠 수 있을까요? 이 튜토리얼에서는 Python에서 그것을 어떻게 할 수 있는지 배워보겠습니다.

for 루프를 사용하여 리스트의 리스트 펼치는 방법

Python에서 리스트의 리스트를 어떻게 펼칠 수 있을까요? 일반적으로 리스트의 리스트를 펼치려면 다음 단계를 명시적으로 또는 암시적으로 실행할 수 있습니다:

  1. 펼친 데이터를 저장할 새로운 빈 리스트를 생성합니다.
  2. 원본 리스트의 각 중첩된 리스트 또는 서브리스트를 **반복(iterate)**합니다.
  3. 현재 서브리스트의 각 항목을 펼친 데이터 리스트에 추가합니다.
  4. 결과로 얻은 펼친 데이터 리스트를 반환합니다.

matrix 예제를 계속하기 전에, for 루프와 .extend() 메서드를 사용하여 이러한 단계를 Python 코드로 변환하는 방법은 다음과 같습니다:

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

flatten_extend() 내부에서, 먼저 flat_list라는 새로운 빈 리스트를 생성합니다. 이 리스트는 matrix에서 추출한 펼친 데이터를 저장하는 데 사용됩니다. 그런 다음, matrix의 중첩된 리스트를 반복하는 루프를 시작합니다. 이 예제에서는 현재 중첩된 리스트를 나타내기 위해 row라는 이름을 사용합니다.

이제 아래 코드를 실행하여 함수가 예상대로 작동하는지 확인해 보세요. 매트릭스를 펼친 리스트가 반환되는지 확인하세요.