728x90
반응형
Python 이중 어레이 초기화
1. 지능형 리스트로 표현
>>> board = [['_'] * 3 for _ in range(3)]
>>> board
[['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
>>> board[1][2] = 'X'
>>> board
[['_', '_', '_'], ['_', '_', 'X'], ['_', '_', '_']]
2. 잘못된 표현
- 동일한 리스트에 대한 세 개의 참조를 가진 리스트는 잘못된 리스트입니다.
>>> wrong_board = [['_'] * 3] * 3
>>> wrong_board
[['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
>>> wrong_board[1][2] = 'X'
>>> wrong_board
[['_', '_', 'X'], ['_', '_', 'X'], ['_', '_', 'X']]
- 즉, 이렇게 코드를 작성한다면 최상위 리스트가 동일한 내부 리스트에 대한 참조를 세 개 가지게 되어
- 세 개의 행이 모두 동일한 객체를 참조하게 된다.
참고) 한빛미디어 '전문가를 위한 파이썬'
728x90
반응형
'코딩해 > Python' 카테고리의 다른 글
[Python] Multiline string | 개행 스트링 입력 (0) | 2021.05.20 |
---|---|
[Python] argument 처리 | argument 파싱 | shell python 실행 (0) | 2021.03.05 |
[Python] argparser 사용하기(파이썬 호출 인자) (0) | 2020.12.06 |
[Python] 파이썬 CSV 모듈 쓰기, 읽기, 수정 (0) | 2020.10.21 |
[Python] 딕셔너리(dictionary) 생성 & 초기화: setdefault(), defaultdict() (0) | 2020.10.14 |