imhamburger 님의 블로그
파이썬(Python) - 시퀀스 자료형, 세트(Set)와 딕셔너리(dict) 본문
세트(Set)
세트는 다음과 같은 메소드를 가진다.
add | 요소 추가 |
remove | 요소 삭제 |
discard | 요소 삭제 |
pop | 요소를 가져오면서 삭제 |
그럼 remove와 discard의 차이는 뭐지?
remove는 없는 요소를 지우라고 명령할 시 Error를 발생시키지만, discard는 없는 요소여도 에러가 발생하지 않는다. (흠, 그러면 어떤 경우에 쓰일까?)
set1 = set()
set1.add(2)
set1.remove(2)
set1.discard(2) #정상작동
세트는 index가 없기 때문에 pop을 쓰면 어떤 랜덤한 요소가 삭제되니 유의하자!
Set의 집합 연산
#합집합
set.union(a, b) #'|' 엔터키 위에 있는 요 막대기로 써도 된다. set(a) | set(b)
#교집합
set.intersaction(a, b) #'&' 이것도 가능 set(a) & set(b)
#차집합
set.difference(a, b) #set(a) - set(b)
#a가 b의 부분집합(a가 b집합에 포함되어 있는가?)
a.issubset(b)
#a가 b의 상위집합(a가 b집합을 포괄하고 있는가?)
a.issuperset(b)
#a가 b에 겹치지 않는 집합(a집합과 b집합은 서로 다른 값을 가지는가?)
a.isdisjoint(b)
+추가로.... b집합을 a집합에 넣고 싶다면?
a.update(b) #b값이 a에 대입이 된다.
딕셔너리(Dictionary)
딕셔너리는 {key : value} 형태로 갖는다.
유의해야할 것은 key값이 같은 것이 2개 이상 존재한다면, 제일 먼저 나오는 key만 출력된다.
#1과 True는 같은 값을 갖는다.
dic = {1: value1, True: value2}
print(dic)
#1: value1만 출력된다.
딕셔너리는 그럼 어떻게 만들지?
sample1 = dict()
sample2 = {}
#반드씨 쌍을 이루어야 한다. [1, 'value1', value2]를 넣는다면 에러가 난다.
sample3 = dict([[1, 'value1'], [2, 'value2']])
+추가로 zip이란 함수가 있다는데...
zip은 키값만 갖는 리스트, value값만 갖는 리스트를 인덱스가 같은것끼리 한 쌍으로 튜플로 만들어 준다.
zip자체로는 출력이 불가하다. 따라서 list 혹은 dict 형태로 다시 변환하여 출력해야 한다.
a = [1, 2, 3]
b = ['A', 'B', 'C']
print(list(zip(a, b)))
#출력 [(1, 'A'), (2, 'B'), (3, 'C')]
a = [1, 2, 3]
b = ['A', 'B', 'C']
print(dict(zip(a, b)))
#출력 {1: 'A', 2: 'B', 3: 'C'}
'파이썬(Python)' 카테고리의 다른 글
파이썬(Python) - 모듈만들기 (0) | 2024.06.21 |
---|---|
파이썬(Python) - 함수(function)와 람다(lambda) (0) | 2024.06.16 |
파이썬(Python) - List comprehension (0) | 2024.06.15 |
파이썬(Python) - 시퀀스 자료형, 리스트와 튜플 (0) | 2024.06.13 |
파이썬(Python) - 시퀀스 자료형, 문자열 (1) | 2024.06.12 |