sam0467   2년 전

list_1의 값을 처음 입력된 list1의 값으로 고정을 시킬려고 했는데,

list1의 값이 바뀌면서 list_1의 값도 바뀌어버립니다 ㅠㅠㅠㅠㅠㅠ

list_1이 처음 선언된 이후로 다시 선언도 하지 않았는데 list1의 값이 바뀐다고

list_1의 값이 왜 바뀌는지 이해가 가지 않습니다.

설명 좀 해주시면 감사하겠습니다ㅠㅠㅠ

ai4youej   2년 전

list_1은 list1의 원소를 그대로 복사하지 않고, list_1과 list1이 같은 객체를 참조하도록 합니다. 얕은 복사에 대해서 검색해보세요.

이를 막는 방법은 copy 모듈을 사용하는 방법도 있고, 리스트가 1차원인 경우에는 L[:]을 사용하는 방법도 있습니다.

aru0504   2년 전

copy 모듈은 꽤 느리기 때문에, list comprehension으로 재정의하는 게 낫습니다.

ahmg1216   2년 전

arr1=[1,2 3]

arr2=arr1[:]이 짧고 편합니다

sam0467   2년 전

답변들 덕분에 궁금증이 해소되었습니다. 잠깐 못했더니 메모리 주소 개념을 헷갈렸네요..아직 공부할께 많네요.. 귀한 시간 내주셔서 감사합니다!!

댓글을 작성하려면 로그인해야 합니다.