https://programmers.co.kr/learn/courses/4008/lessons/12836
순열 구현 아무리 생각해도 못하겠어서 일단 모범답안(?)으로 주는 코드를 봤는데 전혀 와닿지가 않지만 읽어보려고 하던 중
알 수 없는 기호 arr[:]가 나타났다 도대체 뭘까 싶어서 열심히 구글링 해봤고
https://stackoverflow.com/questions/35713891/what-is-the-meaning-of-arr-in-assignment-in-numpy
https://blockdmask.tistory.com/425
이 두곳에서 일단 간단히 이해해보았다
우선, 그냥 a=arr[:]의 의미는 리스트 맨앞부터 맨뒤까지 슬라이싱, 즉 그냥 item들 복사하는 느낌이다.
그럴거면 그냥 a=arr해도 되지 않나? 싶지만 numpy는 어떻게 다른지 정확히는 모르겠지만 so 설명에 따라 이해를 해보자면
예를 들어
arr1=[1,2,3]
arr2=[4,5,6]
일 때
그리고 arr1의 주소가 4595568512
arr2의 주소가 4595566192일때
arr1[:]=arr2를 하면
arr1=[4,5,6]이 된다.
하지만 arr1의 메모리 주소는 원래 그대로 유지가 된다.
arr1의 주소는 4595568512 그대로다
하지만
arr1 = arr2
는 주소 복사가 되는 듯하다. 이렇게 되면
arr1의 주소가 4595566192가 된다.
'Etc. > Python' 카테고리의 다른 글
[Python] collections- Counter (0) | 2021.10.11 |
---|---|
[Python] itertools-2 (0) | 2021.10.10 |
[Python] itertools (0) | 2021.10.10 |
[Python] join (0) | 2021.10.10 |
[Python] zip (0) | 2021.10.10 |
댓글