Set
- set은 순서가 없고 중복되지않는 요소들의 집합
- Mutable : 요소들을 수정할 수 있다.
- Unordered : 요소들의 순서가 없다. 즉 indexing, slicing이 불가능
- Distinct : 요소들의 중복이 없다. 중복되는 요소는 하나로 처리됨
How to define a set
- 요소들을 {}로 감싸고 객체를 지정한다.
- empty set은 {}이 아니라 set()
- set()은 single argument만을 입력받는다.
>>> set(2,3,4)
error
>>> set([2,3,4])
{2,3,4}
Set: operations
- set.add(v) : v를 set에 추가. 이때 v는 단일값이어야함
- set.clear() : set의 요소들을 전부 삭제
- set.remove(v) : set의 요소 v를 삭제
- set1.difference(set2) : set2와 차집합을 출력
(set1 - set2)
- set1.intersection(set2) : set2와 교집합 출력
(set1 & set2)
- set1.issubset(set2) : set1이 set2의 부분집합인지 논리값 출력 (set1 <= set2)
- set1.isuperset(set2) : set1이 set2를 포함하는지 논리값 출력 (set1 >= set2)
- set1.symmetric_difference(set2) : set1과 set2의 대칭차를 출력 (합집합에서 교집합을 뺀것)
(set1 ^ set2)
- set1.union(set2) : set1과 set2의 합집합을 출력
(set1 | set2)
Tuple
- Immutable, Ordered
- indexing, slicing이 가능하다
- for구문에서 list처럼 사용이 가능하다
- empty tuple은 ()
- 요소가 1개인 튜플은 요소의 타입인지 튜플인지 헷갈릴 수 있다
- 이때 1개의 요소 x를 가지는 튜플을 (x,)로 정의한다
Tuple: multiple assignment
- 변수의 값을 바꾸거나 여러개를 지정할 때 tuple을 사용하면 편리하다.
a와 b의 값을 바꾸는 코드
>>> a = 'first'
>>> b = 'second'
>>> temp = b
>>> b = a
>>> a = temp
>>> a
second
>>> b
first
>>> a = 'first'
>>> b = 'second'
>>> a,b = b,a
>>> a
second
>>> b
first
Dictionary
- key와 value를 한 쌍으로 가지는 자료형
- key는 immutable, value는 mutable
- Unordered
- {key1:value1, key2:value2...}로 딕셔너리의 만듦
- empty dictionary는 {}
Dictionary looping
- for구문에서 리스트처럼 사용 가능
- for 구문의 변수에 key값이 순서대로 지정됨
- 반복문의 조건에서 in논리연산은 value값이 있는지가 아닌 key값이 있는지에 대한 연산
Dictionary methods
- dictionary.clear() : 딕셔너리의 모든 요소를 삭제
- dictionary.get(k,v) : 딕셔너리 key인 k에 해당하는 value를 출력. k인 key가 없으면 v를 출력
- dictionary.keys() : 딕셔너리의 key들을 리스트로 출력
- dictionary.items() : 딕셔너리의 key와 value의 쌍을 각각 리스트로 list in list형식으로 출력
- dictionary.pop(k,v) : 딕셔너리의 key인 k에 해당하는 value를 출력하고 k를 삭제. k가 없다면 v를 출력
- dictionary.values() : 딕셔너리의 value들을 리스트로 출력
- dictionary.update(other_dictionary) : 파라미터로 다른 딕셔너리를 입력받으며 다른 딕셔너리의 key value들을 추가함