알고리즘 - 파이썬 2차원 리스트를 생성하고 요소를 변경할때의 에러 문제

hee·2022년 12월 8일
0

알고리즘

목록 보기
10/10

파이썬 2차원 리스트를 생성하고 요소를 변경할때의 에러 문제

DFS, BFS 문제를 해결하다가 방문처리 리스트를 생성하기 위해

visited = [[False]*n]*m

위의 코드와 같은 형태로 연산자를 이용해 2차원 리스트를 생성하였습니다.
예를 들어

위와 같이 생성하고 visited 2차원 리스트에서 [0][0] 요소의 정보를 True로 변경할려고 했습니다. 하지만 결과는

위의 사진과 같이 모든 요소의 0인덱스 자리가 모두 True로 바뀌면서 DFS, BFS 문제를 해결할때 결과가 이상하게 나오는 것 이었다. 이 문제가 왜 발생하는지 찾아보니
연산자를 사용하면서 참조를 복사하는 것이 에러가 발생 한다는 것 이었다. 이 문제를 해결하기 위해 리스트 함축 법을 활용해

위와 같이 작성해주면

위와 같이 [0][0] 자리만 True로 변경된것을 확인할 수 있습니다.

0개의 댓글

관련 채용 정보