- 사전 자료형은 키(Key)와 값(Value)의 쌍을 데이터로 가지는 자료형이다.
- 사전 자료형은 키와 값의 쌍을 데이터로 가지며, 원하는 '변경 불가능한 자료형'을 키로 사용한다.
- 파이썬의 사전 자료형은 해시 테이블을 이용하므로 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리할 수 있다.
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'
print(data)
dif = {
'사과': 'Apple'
'바나나': 'Banana'
'코코넛': 'Coconut'
}
print(dif)
if '사과' in data:
print("'사과'를 키로 가지는 데이터가 존재합니다.")
사전 자료형 관련 메서드
- 키 데이터만 뽑아서 리스트로 이용할 경우 keys()
- 값 데이터만 뽑아서 리스트로 이용할 경우 values()
- 엄밀히 말하면 keys()와 values()로 출력되는 리스트는 'dict_keys()|dict_values()'라는 하나의 객체로 반환되기 때문에 list()함수로 형변환을 수행해주면 정상적으로 출력된다.
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'
# 키 데이터만 담은 리스트
key_list = list(data.keys())
# 값 데이터만 담은 리스트
value_list = list(data.values())
print(key_list)
print(value_list)
# 각 키에 따른 값을 하나씩 출력
for key in key_list:
print(data[key])
집합 자료형
- 중복 허용 X, 순서 X
- 집합은 리스트 혹은 문자열을 이용해 초기화 할 수 있다.
- 혹은 중괄호({})안에 각 원소를 콤마(,)기준으로 구분하여 삽임함으로써 초기화 할 수 있다.
- 데이터의 조회 및 수정에 있어서 O(1)의 시간에 처리한다.
# 집합 자료형 초기화 방법 1
data = set([1, 1, 2, 3, 4, 4, 5])
print(data)
# 집합 자료형 초기화 방법 2
data = {1, 1, 2, 3, 4, 4, 5}
print(data)
집합 자료형의 연산
a = set([1, 2, 3, 4, 5])
b = set([3, 4, 5, 6, 7])
# 합집합
print(a | b)
# 교집합
print(a & b)
# 차집합
print(a - b)
집합 자료형 관련 함수
data = set([1, 2, 3])
print(data)
# 새로운 원소 추가
data.add(4)
print(data)
# 새로운 원소 여러개 추가
data.update([5, 6])
print(data)
# 특정한 값을 갖는 원소 삭제
data.remove(3)
print(data)
사전 자료형과 집합 자료형의 특징
- 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있다.
- 사전 자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.
- 사전의 키(key) 혹은 집합의 원소를 이용해 O(1)의 시간 복잡도로 조회한다.