본문 바로가기
Algorithm

Set, Map

by shur_ 2023. 9. 19.

 

참고 : JAVA Collection Framework의 상속 기본 구조

 

파이썬은 너무 편하다


 

< set >

  • 집합의 개념과 같은 자료구조
  • 중복을 허용하지 않는다.
  • 순서가 없다.

만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환한 후에 해야 한다.

 

 

set 다루기
set1 = set([1, 2, 3, 4, 5, 6])
set2 = set([4, 5, 6, 7, 8, 9])

set1 & set2 # 교집합 {4,5}
set1 | set2 # 합집합 {1, 2, 3, 4, 5, 6, 7}
set1 - set2 # 차집합 {1, 2, 3}
set1 ^ set2 # 대칭 차집합 {1, 2, 3, 6, 7}
set1.intersection(set2) # 교집합
set1.union(set2) # 합집합
set1.difference(set2) # 차집합
set1.symmetric_difference(set2) # 대칭 차집합
new = set() # set 생성
set1.add(7) # 값 1개 추가
set1.update([8, 9, 10]) # 값 여러개 추가
set1.remove(10) # 특정 값 제거

 

 


 

< map >

  • 키와 데이터를 같이 저장할 수 있는 자료구조
  • Key, Value의 한 쌍으로 이루어진 데이터의 집합
  • Key에는 중복된 값이 입력될 수 없다.
  • Value의 중복은 허용된다.

 

 

python 에서는 Dictionary를 사용.

 

생성

mydict **=** dict() # mydict = {}
{}

 

값 조회

mydict **=** {'a': 1, '가':2, 100: 3, 3.14: 4, **True**: 5}
mydict
{'a': 1, '가': 2, 100: 3, 3.14: 4, True: 5}
mydict['a']
1
  • key를 지정하여 값을 조회할 때 해당 key가 없으면 Error 발생.
mydict.get('a')
1
  • get()을 사용하면 key가 없는 경우라도 Error가 발생하지 않는다. None 반환.

 

keys() : 모든 key 조회

mydict = {'a': 100, 'b': 200, 'c': 300, 'd': 400, 'e': 500}
mydict
{'a': 100, 'b': 200, 'c': 300, 'd': 400, 'e': 500}
mydict.keys()
dict_keys(['a', 'b', 'c', 'd', 'e'])
  • dict_keys는 객체(object)로 생성되는데, 이를 list로 변경하기 위해서는 list()로 타입 변환.

 

values() : 모든 value 조회

mydict.items()
dict_items([('a', 100), ('b', 200), ('c', 300), ('d', 400), ('e', 500)])
list(mydict.items())
[('a', 100), ('b', 200), ('c', 300), ('d', 400), ('e', 500)]

 

값 제거

del mydict['a']
mydict.pop('b') # 제거되는 value 값 반환

'Algorithm' 카테고리의 다른 글

삽입 정렬  (0) 2023.12.18
선택 정렬  (0) 2023.12.17
시간복잡도  (1) 2023.12.06
DFS, BFS  (1) 2023.10.12
그리디 알고리즘  (0) 2023.10.06

댓글