십대를 위한 코딩/십대를 위한 파이썬

중첩 리스트 내포― 다차원 데이터를 한 줄로 다루는 파이썬의 마법

forSilver 2025. 5. 17. 03:12
반응형

중첩 리스트 내포
― 다차원 데이터를 한 줄로 다루는 파이썬의 마법

반복문을 중첩해서 사용할 수 있다는 것, 바로 이 점이 리스트 내포를 더 강력하게 만들어줍니다.
이번 글에서는 중첩 리스트 내포로 2차원 리스트 생성, 펼치기, 전치 등 다양한 구조를 다뤄봅니다.


1. 기본 구조

[[표현식 for 항목2 in 반복2] for 항목1 in 반복1]

2. 예제 1: 행렬 만들기

matrix = [[i + j*3 for i in range(3)] for j in range(3)]

출력:

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

3. 예제 2: 리스트 펼치기 (flatten)

[num for row in matrix for num in row]

4. 예제 3: 조건 포함

[num for row in matrix for num in row if num % 2 == 0]

5. 예제 4: 전치 행렬

[[row[i] for row in matrix] for i in range(3)]

6. 예제 5: 좌표 격자 생성

[(x, y) for x in range(3) for y in range(3)]

✅ 마무리 요약

용도 형태
2차원 생성 [[i + j*3 for i in ...] for j in ...]
1차원 펼치기 [num for row in matrix for num in row]
조건 포함 [num for ... if 조건]
전치 행렬 [[row[i] for row in matrix] for i in range()]
좌표 생성 [(x, y) for x in X for y in Y]

📌 다음 글 예고

enumerate, zip, lambda를 리스트 내포와 결합해 복잡한 작업을 한 줄에 표현하는 방법을 소개하겠습니다.