1. immutable & mutable
- immutable 객체 : 객체가 지닌(객체에 저장된) 값의 수정이 불가능한 객체
Ex) 튜플과 문자열
- mutable 객체 : 객체가 지닌 값의 수정이 가능한 객체
Ex) 리스트와 딕셔너리

- 리스트의 주소 정보를 확인한 뒤에, 리스트 안에 3과 4라는 숫자를 추가로 넣어주었음
- 그리고 나서 리스트의 주소를 확인해보면, 주소가 바뀌지 않았음을 알 수 있음

- 튜플의 경우 주소를 확인한 뒤에, 3과 4라는 숫자가 추가된 튜플을 새로 생성하였음
- 그리고 나서, 새로운 튜플의 주소를 확인해보면 당연히 주소가 다른 것을 확인할 수 있음
2. 성격에 따라 달라지는 함수의 정리
1) add_last 함수
| def add_last(m, n): m += n |

- r 리스트에 3과 4를 추가하는 함수

- 그러나 튜플의 경우, 엉뚱한 함수가 생성된 것을 알 수 있음
- 즉, 추가되지 않음
- 아까 그 예제는 추가한 새로운 튜플을 생성한 것일 뿐, 추가한 것이 아님
- 따라서 추가를 하는 함수는 적용되지 않음

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

- d.sort() = 리스트를 오름차순으로 정렬
- d[0], d[-1] = 맨 앞의 값과 맨 마지막 값을 출력
- 최소값과 최대값을 출력할 수 있음
- 또한 원본 리스트의 저장 순서가 오름차순으로 변경된 것을 확인할 수 있음
è 이것이 문제가 되는 경우가 있음

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

- d = list(d) : d의 내용이 담긴 새로운 리스트 생성
- d.sort() : 원본이 아닌 복사본을 정렬함
- 원본이 수정되지 않은 것을 확인할 수 있음
- 함수 내에서 튜플에 담긴 내용을 갖는 리스트를 생성하긴 했지만, 그것은 문제가 되지 않음
* 이 장에서 하고 싶은 말
- 수정 가능한 함수(딕셔너리와 리스트), 수정 불가능한 함수(튜플)이 있는데, 그 특징에 따라 python내에서 사용할 수 있는 함수가 나뉜다!
- 그러니, 각 특징에 맞게 알맞은 함수를 사용해야 한다.
'윤성우의 열혈 파이썬 (중급)' 카테고리의 다른 글
| Story 09. 제너레이터 함수 (0) | 2021.07.15 |
|---|---|
| Story 08. 두 함수를 대신하는 리스트 컴프리헨션 (0) | 2021.07.14 |
| Story 07. map & filter (0) | 2021.07.12 |
| Story 04. 리스트 컴프리헨션 (0) | 2021.07.08 |
| Story 01. 레퍼런스 카운트와 가비지 컬렉션 (0) | 2021.07.05 |