요소의 개수를 미리 알고있는 1차원 리스트를 선언할 때는 다음과 같이 선언한다.
# 5개 요소의 1차원 리스트 만들기
n = 5
a = [0]*n
print(a) # >>> [0, 0, 0, 0, 0]
하지만 2차원 리스트를 선언할 때 같은 방법을 사용하면 오류가 난다.
# 5*5 요소의 2차원 리스트 만들기(잘못된 방법)
n = 5
a = [[0] * n] * n
print(a) # >>> [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
출력은 잘 되는 듯 보이지만, a[1][2]를 1로 바꾸려고 한다면, 리스트가 이상하게 바뀌어버린다.
a[1][2] = 1
print(a) # >>> [[0, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 0], [0, 0, 1, 0, 0]]
이유는 값을 할당하는 것이 아닌, 리스트를 복사하기 때문에 나타나는 오류라고 하는데,, 자세한 이유는 코딩테스트를 할 때 중요하지 않으니 바로 제대로 초기화하는 방법을 알아보자.
for문을 이용하면 된다.
( a = [[0] * n for _ in range(n)] )
# 5*5 요소의 2차원 리스트 만들기
n = 5
a = [[0] * n for _ in range(n)]
print(a) # >>> [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
'자기계발' 카테고리의 다른 글
인간관계 거리두기의 중요성 (0) | 2025.03.21 |
---|---|
변화에 능동적이고 유연하게 대처하기 (0) | 2025.03.20 |
파이썬 문자열 strip() 함수 : strip() 함수의 정의 (0) | 2023.09.29 |
python 프로그램 실행파일 만들기, pyinstaller (0) | 2023.09.18 |
[Python pandas] excel 파일 읽기: read_excel() (0) | 2023.09.17 |