사전 자료형
- Key와 Value의 쌍을 데이터로 가지는 자료형
- 변경 불가능한 자료형을 Key로 사용 가능
- Hash Table을 이용하므로 데이터의 조회 및 수정에 O(1)의 시간복잡도를 가진다.
Key | Value |
사과 | Apple |
바나나 | Banana |
코코넛 | Coconut |
data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'
data['코코넛'] = 'Coconut'
if '사과' in data:
print("존재")
#실행 결과
"존재"
사전 자료형에서는 키와 값을 별도로 뽑아내기 위한 메서드를 지원한다.
- keys()함수로 키 데이터를 뽑아 리스트로 이용
- values()함수로 값 데이터만 뽑아 리스트로 이용
# 키 데이터만 담은 리스트
key_list = data.keys()
# 값 데이터만 담은 리스트
values_list = data.values()
#키 값만 출력
for key in key_list:
print(data[key])
집합 자료형
집합의 특징
- 중복을 허용하지 않는다.
- 순서가 없다.
- 리스트 혹은 문자열을 사용해 초기화한다. <set()>'
- 데이터의 조회 및 수정은 O(1)의 시간 복잡도를 가진다.
# 집합 자료형 초기화 방법1
data = set([1,1,2,3,4,4,5])
# 집합 자료형 초기화 방법2
data = {1,1,2,3,4,4,5}
#실행 결과
{1,2,3,4,5}
집합 자료형의 연산
# 합집합
print(a|b)
#교집합
print(a&b)
#차집합
print(a-b)
#새로운 원소 추가
data.add(i)
#새로운 원소를 여러 개 추가
data.update([5,6])
#특정한 값을 갖는 원소 삭제
data.remove(i)
사전 자료형과 집합 자료형의 특징
- 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있다.
- 사전 자료형과 집합 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.
- key, 원소를 이용해 O(1)의 시간 복잡도로 조회가 가능하다.