사전 자료형은 key와 value의 쌍을 데이터로 가지는 자료형이다. 사전 자료형이 사용되는 대표적인 예시는 dictionary이다. 파이썬의 사전 자료형은 내부적으로 해시 테이블을 이용하므로 기본적으로 검색 및 수정에 있어서 O(1)의 시간에 처리할 수 있다.
data=dict()
data['사과']='apple'
data['바나나']='banana'
if '사과' in data:
print('사과를 키로 가지는 데이터가 존재합니다.')
사전 자료형에 특정한 원소가 있는지 검사할 대는 '원소 in 사전'의 형태를 사용할 수 있다. (리스트나 튜플에 대해서도 사용할 수 있는 문법)
data=dict()
data['사과']='apple'
data['바나나']='banana'
#키 데이터만 담은 리스트
key_list=data.keys()
#값 데이터만 담은 리스트
value_list=data.values()
for key in key_list:
print(data[key])
keys()
함수와 values()
함수를 사용하여 key/value 값을 뽑아낼 수 있다.
파이썬에서는 집합(set)을 처리하기 위한 집합 자료형을 제공하고 있다. 집합은 다음과 같은 특징이 있다.
특정 원소가 존재하는지 검사하는 연산의 시간복잡도는 사전 자료형과 마찬가지로 O(1)이다.
#초기화 방법 1
data=set([1,2,3,4,4,5])
#초기화 방법2
data={1,2,3,4,4,5}
초기화 방법에는 위 두 가지가 있다. 4가 중복으로 들어가게 초기화했어도 print(data)해보면 {1,2,3,4,5}가 출력된다.
a=set([1,2,3,4,5])
b=set([3,4,5,6,7])
print(a|b) #합집합
print(a&b) #교집합
print(a-b) #차집합
'''
출력결과
{1,2,3,4,5,6,7}
{3,4,5}
{1,2}
'''
기본적인 집합 연산으로는 합집합, 교집합, 차집합이 있다.
data=set([1,2,3])
#새로운 데이터 추가
data.add(4)
#새로운 데이터 여러 개 추가
data.update([5,6])
#특정한 값을 갖는 원소 삭제
data.remove(3)
데이터를 추가하거나 삭제하기 위해 add()
, update()
remove()
함수를 사용할 수 있다.
참고자료: 이코테 428p~432p