BAEKJOON (Python)/단계별

‘words = [[0]*15]*5’와 ‘words = [[0 for j in range(15)] for i in range(5)]’의 차이점

RiLLa_0511 2023. 3. 27. 09:55
728x90

>> words = [[0]*15]*5

>> words = [[0 for j in range(15)] for i in range(5)]

 

위 두 개의 코드의 차이점은 리스트의 초기화 방법이다.

 

'[0]*15'는 0으로 초기화된 길이가 15인 리스트를 만들고, 이 리스트를 5번 반복하여 5개의 리스트를 생성한다.

이 경우, 5개의 리스트가 모두 동일한 리스트 객체를 참조하므로, 한 리스트를 수정하면 모든 리스트가 영향을 받는다.

 

'words = [[0 for j in range(15)] for i in range(5)]' 코드의 경우 0으로 초기화된 길이가 15인 리스트를 5버 생성하여, 5개의 독립된 리스트를 만든다.

이 경우, 5개의 리스트가 서로 독립적으로 생성되므로, 한 리스트를 수정해도 다른 리스트에 영향을 주지 않는다.