
Sets
Set Type
- 요소들의 집합
- 요소들끼리 순서 없음
- 요소들끼리 서로 중복되지 않음
- 같은 값을 입력해도 중복값을 알아서 거른 후 저장
Define
- set(): empty set 생성하는 함수
- set_variable = {} 로 생성 불가능
- set(a): 인자 a를 갖는 set 생성
- parameter는 반드시 하나만 전달
- parameter가 list일 경우 list의 요소로 이루어진 set 형성
- parameter에 list, set, range, tuple 넣기 가능
- parameter로 range를 넣을 경우 정렬되지 않고 무작위로 삽입
- set_variable = {a, b, c, ...}: {}안 값들을 요소로 갖는 set 형성
Method
- S.add(v): v값을 set S에 삽입
- S.clear(): set S에 있는 모든 아이템 삭제
- S.difference(other): set S에서 set other와 공통된 요소를 제거한 set 반환
- S.intersection(other): set S와 set other의 교집합 set 반환
- S.issubset(other): set S가 set other의 부분 집합인지 boolean 값 반환
- S.isupperset(other): set S가 set otehr의 상위 집합인지 boolean 값 반환
- S.remove(v): set S에서 item v 삭제
- S.symmetric_difference(other): set S와 set other의 요소 중 서로 겹치지 않는 요소들로만 이루어진 set 반환
- S.union(other): set S와 set other의 합집합 set 반환
Operator
- S - other: set S에서 set other와 공통된 요소를 제거한 set 반환
- S & other: set S와 set other의 교집합 set 반환
- S <= other: set S가 set other의 부분 집합인지 boolean 값 반환
- S >= other: set S가 set otehr의 상위 집합인지 boolean 값 반환
- S | other: set S와 set other의 합집합 set 반환
- S ^ other: set S와 set other의 요소 중 서로 겹치지 않는 요소들로만 이루어진 set 반환
Tuples
Tuple Type
- 요소들의 집합
- 순서가 존재해 index 접근 가능
- immutable해 index별로 수정 불가능
- tuple안에 들어가는 요소들이 mutable한 경우 해당 요소만 수정 가능
- ex) list로 이루어진 tuple의 경우 tuple의 첫 번째 요소 list의 첫 번째 item 수정
- 소괄호 ()를 사용해 정의
- ()은 empty tuple
- item이 하나만 존재할 경우 (x,)로 정의
- item이 여러 개 존재할 경우 , 로만 구분해 줘도 tuple로 인식
- multiple assingment에 사용
- 편리한 swap
Dictionaries
Dictionary Type
- 지도 역할
- key와 value 두 개가 쌍을 이뤄 하나의 entry
- key는 immutable
- value는 mutable
- 순서가 없음
- key를 inex처럼 사용
- 중괄호 {}를 이용해 사용
- 하나의 entry는 key:value로 입력
- {}는 empty dictionary
Updating and Looping
- del dictionary_variable[key] 로 entry 하나를 삭제 가능
- x in dictionary_variable: dinctionary의 key 중에 a가 있는지 검색하고 value에 대해서는 검색하지 않음
- for x in dictionary_variable: dictionary의 key에 대해서만 iteration 수행
+ dictionary는 순서가 없어서 for 문을 실행했을 때 iteration의 순서 모름
Method
- D.clear(): Dictionary의 모든 entry 제거
- D.get(k): k라는 key와 연결된 value 값 반환
- D.get(k, v): k라는 key와 연결된 value 값을 반환하며 연결된 값이 없을 때는 v 값 반환
- D.keys(): 모든 key 값을 dictionary_keys라는 새로운 data type으로 반환
- D.values(): 모든 value 값을 dictionary_values라는 새로운 data type으로 반환
- D.items(): (key, value)로 이루어진 set을 요소로 갖는 divtionary_items라는 새로운 data type으로 반환
- D.pop(k): k라는 key 값에 연결된 value를 반환하고 해당 entry 삭제
- D.pop(k, v): k라는 key 값에 연결된 value 값을, 연결된 값이 없을 경우 v를 반환하고 해당 entry 삭제
- D.update(other): other Dictionary의 key가 D에 있을 경우 other의 value 값으로 덮어 쓰고, 없을 경우 other의 entry 추가
Inverting Dictionary
- key 값을 value로, value 값을 key로 바꾸는 것
- key는 unique하지만 value는 중복된 경우도 있음
- 여러 개의 key가 하나의 value 값을 가진다면, 해당 key들을 list로 만들어서 value 값으로 invert
