컴프리헨션

dev/프로그래밍

파이썬 리스트 컴프리헨션 과 곱하기 연산

n = 2 g1 = [[0] * (n + 1)] * (n + 1) g1[1][2] = 1 print(g1) g2 = [[0 for _ in range(n + 1)] for _ in range(n + 1)] g2[1][2] = 1 print(g2) 위의 코드에서 g1 과 g2가 어떻게 바뀔지 알겠나요? g1과 g2 모두 2차원 배열을 만드는 것이고, 3*3 의 2차원 배열이 만들어집니다. 그러나 다음 g1[1][2] =1 , g2[1][2] =1 을 코드를 실행했을때 다른 결과값이 보여집니다. 이유는 저 list * 연산은 새로운 list를 만드는 것이 아니고, 기존 리스트를 복사하기 때문에 실제로는 똑같은 리스트를 여러개 붙여 놓은것입니다. 그래서 g1[1][2] = 1 을 했지만, 모두 수정된 것을 확..

jeongsu
'컴프리헨션' 태그의 글 목록