안녕하세요, 여러분! 오늘은 파이썬에서 매우 유용하게 사용되는 ‘2차원 리스트’에 대해 알아보려고 합니다. 2차원 리스트는 말 그대로 리스트 안에 리스트가 있는 구조를 말하는데요, 마치 엑셀 시트나 게임의 체스판처럼 행과 열로 데이터를 표현할 수 있어 많은 상황에서 유용하게 사용됩니다.
처음 들으면 조금 복잡하게 느껴질 수 있지만, 걱정 마세요. 차근차근 설명해 드리겠습니다.
먼저, 2차원 리스트가 어떻게 생겼는지 그림으로 한번 살펴볼까요?
이 그림에서 볼 수 있듯이, 2차원 리스트는 ‘리스트들의 리스트’입니다. 바깥쪽 큰 상자가 메인 리스트를 나타내고, 그 안의 파란 상자들이 각각의 내부 리스트를 나타냅니다. 그리고 각 내부 리스트는 여러 개의 요소를 가지고 있죠.
이제 파이썬에서 어떻게 2차원 리스트를 만들고 다루는지 살펴보겠습니다.
- 2차원 리스트 생성하기
# 직접 값을 나열하여 생성
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 리스트 컴프리헨션을 사용하여 생성
n = 3 # 행과 열의 개수
matrix = [[0 for _ in range(n)] for _ in range(n)]
print(matrix)
위 코드에서 볼 수 있듯이, 2차원 리스트를 만드는 방법은 여러 가지가 있습니다. 직접 값을 나열할 수도 있고, 리스트 컴프리헨션을 사용하여 동적으로 생성할 수도 있어요.
- 2차원 리스트 접근하기
2차원 리스트의 특정 요소에 접근하려면 어떻게 해야 할까요? 인덱스를 두 번 사용하면 됩니다.
# 직접 값을 나열하여 생성
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 리스트 컴프리헨션을 사용하여 생성
n = 3 # 행과 열의 개수
matrix = [[0 for _ in range(n)] for _ in range(n)]
print(matrix)
# 특정 요소에 접근하기
print(matrix[1][2]) # 2행 3열의 요소 출력
matrix[0][1] = 10 # 1행 2열의 요소를 10으로 변경
# 행 전체에 접근하기
print(matrix[1]) # 2번째 행 전체 출력
matrix[1][2]
는 2행 3열의 요소를 가리킵니다. 첫 번째 인덱스는 행을, 두 번째 인덱스는 열을 나타내죠. 파이썬에서는 인덱스가 0부터 시작한다는 점을 기억해 주세요!
- 2차원 리스트 순회하기
2차원 리스트의 모든 요소를 순회하려면 어떻게 해야 할까요? 이중 for 문을 사용하면 됩니다.
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 모든 요소 출력하기
for row in matrix:
for element in row:
print(element, end=' ')
print() # 줄 바꿈
# 인덱스와 함께 출력하기
for i in range(len(matrix)):
for j in range(len(matrix[i])):
print(f"matrix[{i}][{j}] = {matrix[i][j]}")
이렇게 이중 for 문을 사용하면 2차원 리스트의 모든 요소를 쉽게 순회할 수 있습니다.
2차원 리스트는 실제로 많은 알고리즘 문제에서 활용됩니다. 예를 들어, 게임 보드를 표현하거나, 이미지 처리를 할 때, 또는 그래프 알고리즘을 구현할 때 자주 사용되죠.
여러분, 이제 2차원 리스트에 대해 어느 정도 이해가 되셨나요? 처음에는 조금 복잡해 보일 수 있지만, 실제로 사용해보면 매우 직관적이고 유용하다는 것을 느끼실 수 있을 거예요.
연습 삼아 간단한 게임 보드를 2차원 리스트로 만들어보는 건 어떨까요? 예를 들어, 3x3 틱택토 게임 보드를 만들고, ‘X’와 ‘O’를 번갈아 놓아보세요. 이런 식으로 실제 상황에 적용해보면 2차원 리스트의 활용법을 더 잘 이해할 수 있을 거예요.
2차원 리스트는 파이썬 프로그래밍에서 매우 중요한 개념입니다. 이를 잘 이해하고 활용하면 복잡한 데이터 구조도 쉽게 다룰 수 있게 될 거예요. 앞으로 코딩을 하실 때 2차원 리스트의 활용 기회를 찾아보세요. 여러분의 프로그래밍 실력이 한 단계 더 업그레이드될 거예요!