1. immutable & mutable

 - immutable 객체 : 객체가 지닌(객체에 저장된) 값의 수정이 불가능한 객체

    Ex) 튜플과 문자열

 - mutable 객체 : 객체가 지닌 값의 수정이 가능한 객체

    Ex) 리스트와 딕셔너리

 

 - 리스트의 주소 정보를 확인한 뒤에, 리스트 안에 34라는 숫자를 추가로 넣어주었음

 - 그리고 나서 리스트의 주소를 확인해보면, 주소가 바뀌지 않았음을 알 수 있음

 

 

 - 튜플의 경우 주소를 확인한 뒤에, 34라는 숫자가 추가된 튜플을 새로 생성하였음

 - 그리고 나서, 새로운 튜플의 주소를 확인해보면 당연히 주소가 다른 것을 확인할 수 있음

 

 

2. 성격에 따라 달라지는 함수의 정리

 1) add_last 함수

def add_last(m, n):
    m += n

 

 - r 리스트에 34를 추가하는 함수

 

 

 - 그러나 튜플의 경우, 엉뚱한 함수가 생성된 것을 알 수 있음

 - , 추가되지 않음

 - 아까 그 예제는 추가한 새로운 튜플을 생성한 것일 뿐, 추가한 것이 아님

 - 따라서 추가를 하는 함수는 적용되지 않음

 

 

 - 따라서 튜플은 다음과 같이, add_tuple을 사용해야 함

 

 

 2) min_max 함수

 - d.sort() = 리스트를 오름차순으로 정렬

 - d[0], d[-1] = 맨 앞의 값과 맨 마지막 값을 출력

 - 최소값과 최대값을 출력할 수 있음

 - 또한 원본 리스트의 저장 순서가 오름차순으로 변경된 것을 확인할 수 있음

   è 이것이 문제가 되는 경우가 있음

 

 

 - 따라서 원본이 변하는 것을 원하지 않는다면, 다음과 같이 리스트를 복사한 다음에 정렬을 해야 함

 

 

 

 - d = list(d) : d의 내용이 담긴 새로운 리스트 생성

 - d.sort() : 원본이 아닌 복사본을 정렬함

 - 원본이 수정되지 않은 것을 확인할 수 있음

 - 함수 내에서 튜플에 담긴 내용을 갖는 리스트를 생성하긴 했지만, 그것은 문제가 되지 않

 

 

* 이 장에서 하고 싶은 말

 - 수정 가능한 함수(딕셔너리와 리스트), 수정 불가능한 함수(튜플)이 있는데, 그 특징에 따라 python내에서 사용할 수 있는 함수가 나뉜다!

 - 그러니, 각 특징에 맞게 알맞은 함수를 사용해야 한다.

+ Recent posts