Mutable, Immutable 개념
- Mutable 한 자료형은 변수의 값이 변해도 주소 값은 변하지 않지만, Immutable 한 것들은 변수의 값들이 변하면 주소 값이 변합니다.
- mutable : list, set, dict
- immutable : numbers, tuple, str, frozenset
아래 예시로 보면 더 직관적으로 이해할 수 있습니다. 출력 결과, 요소가 추가되어도 리스트 타입인 a의 id 값은 그대로이지만 숫자형인 b의 id는 변환되는 것을 확인할 수 있습니다.
# mutable
a = [1, 2, 3, 4, 5]
print(a)
print(id(a))
a.append(6)
print(a)
print(id(a))
# immutable
b = 10
print(b)
print(id(b))
b = 20
print(b)
print(id(b))
Set 집합
집합은 순서 지정이 불가능하고, 값의 중복도 불가능한 데이터 타입입니다.
- 중복을 허용하지 않는 특징 때문에 자료형의 중복을 제거하기 위한 필터로도 사용됩니다.
- 리스트처럼 인덱싱으로 값을 찾을 수는 없습니다. (인덱스로 접근하고 싶다면 list 또는 tuple로 변환해서 접근해야 하는 번거로움이 있어요.)
- 교집합, 합집합, 차집합을 구할 수 있습니다.
#실행할 때마다 출력 순서 변경됨
a = {"1", "5", "2", "3", "3", "3", "4"}
print(a)
# 생성자 set()
# c = set([1, 2, 3, 4, 5])
c = set((1, 2, 3, 4, 5)) #tuple로도 set 만들 수 있음
print(c)
a.add('6')
print(a)
print(a.pop()) # set 가장 앞의 값이 튀어 나온다
d = set("hello, world!")
# d = set(["h", "e", "l", "l", "o", ...])
# 하나씩 쪼개서 list로 만든 것과 같음
print(d)
합집합, 교집합, 차집합 구하기
left = {"a,", "b", "c", "d"}
right = {"c", "d", "e", "f"}
# 합집합
print('left union right')
print(left.union(right))
print(left | right)
# 교집합
print('\nleft intersection right')
print(left.intersection(right))
print(left & right)
# 차집합
print('\nleft difference right')
print(left.difference(right))
print(left - right)
frozen set
프로즌세트는 얼린 세트?!
튜플처럼 변경이 불가능한 세트라고 보면 됩니다.
# frozen set
e = frozenset([1, 2, 3, 4, 5])
print(e)
print(type(e))
print(dir(set))
print(dir(frozenset))
dictionary 딕셔너리
사전이죠. 영어 사전처럼 한 쌍으로 이루어진 요소들을 가진 객체라고 생각하면 됩니다. Mapping 아래에 속한 자료형이에요.
- {key : value} 형태로 되어 있고, key를 통해 value를 찾을 수 있습니다.
- key는 중복이 불가능하지만 value는 가능합니다.
- python 3.6부터는 순서도 지정 가능합니다.
dict01 = {'a': 1, 'b': 2, 'c': 3}
print(dict01)
print(type(dict01))
print(dict01['b']) # key 를 사용해서 value 출력
# 끝에 값 추가하기
dict01['d'] = 4
print(dict01)
# 생성자 dict
dict02 = dict(a=1 , c=2, b=3)
print(dict02)
# key, value 따로 출력
print(dict03.keys())
print(dict03.values())
# key들의 값만 확인하고 싶다면 리스트로 변환해보기
print(list(dict03.keys()))
# 삭제하기
print(dict01)
del dict01['a']
print(dict01)
# 중복되는 값이 있으면 마지막 값으로 저장됨
joongbok = {'a': 1, 'b': 2, 'a': 3, 'a': 40}
print(joongbok)
여기까지 기본적인 파이썬 자료형들을 알아보았고, 다음 포스트부터는 코드 예제를 더 많이 담아서 정리해보려 합니다. 언제나 댓글은 환영입니다!
파이썬 자료형 (1) None Type, Numbers(int, float), Boolean
[데이터 사이언스: Python] 자료형의 종류 Data type (None, Numbers, Set, Mapping)
파이썬 기초부터 공부하면서 자료형(Data Type)의 종류, 변수의 자료형 확인 방법, 자료형의 종류에 대한 내용을 정리해 보겠습니다! 자료형은 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형
joy-home.tistory.com
파이썬 자료형 (2) Sequence data types (str, list, tuple)
[데이터 사이언스: Python] 시퀀스 자료형 Data Type Sequence (str, list, tuple)
지난 포스트에 이어서 파이썬 자료형 기초에 대한 내용 정리를 해보겠습니다. Sequence 데이터 타입들에 대해 알아보시죠! Sequence 시퀀스 자료형 파이썬 데이터 타입 세 번째 대분류는 시퀀스입니
joy-home.tistory.com
'Data Science' 카테고리의 다른 글
[데이터사이언스: Python] input, output 사용자 입력값 받기, input 함수 예제 (0) | 2023.06.06 |
---|---|
[데이터 사이언스: Python] 산술연산, 비교연산 operations 정리 (0) | 2023.06.06 |
[데이터사이언스: Python] Print() 함수 총정리! 문자열 형식화 3가지 format 방법까지 (0) | 2023.06.06 |
[데이터 사이언스: Python] 시퀀스 자료형 Data Type Sequence (str, list, tuple) (0) | 2023.06.06 |
[데이터 사이언스: Python] 자료형의 종류 Data type (None, Numbers, Set, Mapping) (0) | 2023.06.06 |