집합은 { } 로 감싸고, 요소끼리는 쉼표로 구분한다. 선언은 set()또는 값을 넣은 { }으로 해야되고, { } 만으로는 할 수 없다.
순서가 없으며 중복 데이터와 mutable한 건 요소로 넣을 수 없다.
s1 = {element1, element2, element3, ... }
순서가 없으니 인덱스 기호를 사용할 수 없다.
중복된 데이터를 가질 수 없으니 +, *를 사용할 수 없다.
중복을 허용하지 않는 특성을 이용해 다른 자료형의 중복을 제거하기 위해 사용하기도 한다.
iterable한 객체를 넣으면 변환하여 집합을 만든다.
s1 = set(문자열) 이 경우엔 문자열을 알파벳 단위로 쪼개 넣는다.
&, |, -, ^ 연산자는 =와 조합해서 연산과 동시에 할당할 수 있다(파이썬 기초 연산의 += 같은 느낌).
빈 집합 만들기
새로 선언 s1 = set()
기존 집합 비우기 s1.clear()
있는 값 확인
값이 있는지 확인 val in s1
값이 없는지 확인 val not in s1
리스트 길이 구하기 len(s1)
확장
하나의 요소를 추가 s1.add(val)
여러개의 요소를 한꺼번에 추가 s1.update(lst)
뽑아내면서 삭제
임의의 요소 뽑아내기 s1.pop() 끝값을 뽑는게 아니다! 참고 링크
삭제
찾는 값이 존재하지 않으면 KeyError 발생 s1.remove(val)
찾는 값이 없어도 에러 안 냄 s1.discard(val)
복사(shallow)
s2 = s1.copy()
s2 = set(s1)
교집합
s1 & s2
s1.intersection(s2)
합집합
s1 | s2
s1.union(s2)
차집합
s1 - s2
s1.difference(s2)
대칭차집합(합집합 - 교집합)
s1 ^ s2
s1.symmetric_difference(s2)
부분집합 여부 확인
s1이 s2의 부분집합인지 확인 s1.issubset(s2)
cf. 반대 superset인지 확인 s1.issuperset(s2)
교집합 여부 확인
교집합이 없으면 True s1.isdisjoint(s2)
'Python' 카테고리의 다른 글
Python - list vs tuple, set vs dictionary (0) | 2021.01.15 |
---|---|
Python - Dictionary (0) | 2021.01.15 |
Python - Tuple (0) | 2021.01.15 |
Python - List (0) | 2021.01.14 |
Python - Function Parameters (0) | 2021.01.14 |