반응형

new_board = [row[:] for row in board] 구문은 Python에서 2차원 리스트(또는 배열) board의 깊은 복사(deep copy)를 생성하는 방법 중 하나입니다. 이 방식을 사용하면, 원본 리스트 board의 각 행을 새 리스트 new_board로 복사하여, board의 각 요소를 수정해도 new_board에는 영향을 미치지 않습니다.

간단한 예제를 통해 이 구문의 사용법을 설명해보겠습니다.

예제: 2차원 리스트 깊은 복사

원본 2차원 리스트 board가 있고, 이를 깊은 복사하여 new_board를 생성하고 싶다고 가정해보겠습니다. 그리고 new_board의 일부 요소를 변경하여, 원본 board에는 영향이 없음을 확인합니다.

 

원본 2차원 리스트
board = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]

깊은 복사를 사용하여 새 리스트 생성

new_board = [row[:] for row in board]

 

새 리스트의 요소를 변경

new_board[0][0] = 10

 

원본 리스트와 변경된 리스트 출력

print("원본 리스트:")
for row in board:
print(row)

print("\n변경된 리스트:")
for row in new_board:
print(row)

이 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

원본 리스트:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]

변경된 리스트:
[10, 2, 3]
[4, 5, 6]
[7, 8, 9]

 

 

위 예제에서 볼 수 있듯이, new_board의 첫 번째 요소를 변경했을 때 원본 board에는 아무런 변화가 없습니다. 이는 new_boardboard의 깊은 복사본이기 때문입니다. row[:]는 리스트의 슬라이싱을 이용해 각 행을 전체 복사하는 방법으로, 이는 깊은 복사의 한 형태입니다.

반응형