반응형
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_board
가 board
의 깊은 복사본이기 때문입니다. row[:]
는 리스트의 슬라이싱을 이용해 각 행을 전체 복사하는 방법으로, 이는 깊은 복사의 한 형태입니다.
반응형
'Basic > Python' 카테고리의 다른 글
python collection 모듈 사용 방법 (0) | 2023.12.19 |
---|---|
python itertools 사용 방법 (0) | 2023.12.19 |
Python을 이용하여 S3 object 만드는 코드 (0) | 2023.10.12 |
Python을 이용하여 S3 bucket 만드는 코드 (0) | 2023.10.11 |
[Python] 파이썬에서 filter나 map으로 나온 값 print 하는 방법 (0) | 2023.03.06 |