최근 파이썬을 통해 백준 알고리즘 문제를 풀이하던 중, 리스트로 2차원, 3차원 형태를 만들어야 하는 부분이 있었다. 재귀 함수를 통해 원소 하나하나씩 값을 구하고, 해당 리스트에 저장해야 했다. 나는 아래와 같은 방식으로 리스트를 생성하고, 값을 저장했다. val = [[[0] * 2] * 2] * 2 val[0][0][1] = 7 이를 프롬프트로 진행했을 때, 위와 같은 결과가 되었다. 슬라이싱을 한 적도, 값을 여러 개 지정하려던 의도도 없었는데, 마치 슬라이싱으로 값을 수정한 것처럼 각 리스트의 1번째 원소가 모조리 저장되었다. 솔직히 이전에도 종종 이런 경우가 있었고, 그때마다 결국 그냥 리스트 인덱싱이 아닌, append 함수나 딕셔너리 타입 등을 이용해서 문제를 해결했다. 그러던 중 우연히 ..