본문 바로가기
개발 관련 공부/코테용 파이썬

사전자료형, 집합 자료형

by 슴새 2022. 9. 13.
반응형
이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다.

사전자료형

사전 자료형은 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

반응형

'개발 관련 공부 > 코테용 파이썬' 카테고리의 다른 글

힙과 우선순위 큐  (0) 2022.09.14
itertools  (0) 2022.09.13
스택, 큐, 재귀함수와 그래프  (0) 2022.09.13
파이썬 람다 표현식  (0) 2022.09.13
파이썬 입출력  (0) 2022.09.13

댓글