- 순서가 없는 집합
- unique한 값을 갖기 때문에 중복 값을 가질 수 없다
- set() 키워드 또는 중괄호를 이용한다
1. set 함수 선언- set() 키워드 또는 중괄호를 이용한다
s1 = set()
s2 = set([1,2,3,4])
s3 = {1,2,3,4}
print(s1)
print(type(s1))
print(s2)
print(type(s2))
print(s3)
print(type(s3))
[결과]
2. unique한 값을 갖기 때문에 중복 값을 가질 수 없다
s1 = {1, 2, 3, 4, 1, 2, 3, 4}
print(s1)
[결과]
3. set 원소에 값 추가 add
s1 = {1, 2, 3, 4, 1, 2, 3, 4}
print(s1)
s1.add(5)
print("add:", s1)
[결과]
4. set 원소에 여러 개의 값 추가 update
- list 형식으로 추가
s1 = {1, 2, 3, 4, 1, 2, 3, 4}
print(s1)
s1.update([5, 6, 7])
print("update:", s1)
[결과]
5. set 원소 값 제거하기 remove, discard
- remove(element)
s1 = {1, 2, 3, 4, 1, 2, 3, 4}
print(s1)
s1.remove(1)
print("remove:", s1)
[결과]
지우고자하는 원소가 set에 없으면 KeyError 발생
s1 = {1, 2, 3, 4, 1, 2, 3, 4}
print(s1)
s1.remove(5)
print("remove:", s1)
- discard(element)
s1 = {1, 2, 3, 4, 1, 2, 3, 4}
print(s1)
s1.discard(1)
print("discard:", s1)
[결과]
지우고자하는 원소가 없어도 에러 발생하지 않음
s1 = {1, 2, 3, 4, 1, 2, 3, 4}
print(s1)
s1.discard(5)
print("discard:", s1)
[결과]
6. set 복사 copy
s1 = {1, 2, 3, 4, 1, 2, 3, 4}
print(s1)
s2 = s1.copy()
print("copy:", s2)
[결과]
7. set 연산자: 합집합(|), 교집합(&), 차집합(-), 대칭차집합(합집합 - 교집합),
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
s3 = s1|s2
print("합집합",s3)
s4 = s1&s2
print("교집합",s4)
s5 = s1-s2
print("차집합",s5)
s6 = s1^s2
print("대칭차집합",s6)
[결과]
8. set 연산메소드: 합집합(union),교집합(intersection),차집합(difference), 대칭차집합(symmetric_difference)
- 합집합(union)
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
s3 = s1.union(s2)
print("합집합",s3)
- 교집합(intersection)
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
s3 = s1.intersection(s2)
print("교집합",s3)
- 차집합(difference)
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
s3 = s1.difference(s2)
print("차집합", s3)
- 대칭차집합(symmetric_difference)
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
s3 = s1.symmetric_difference(s2)
print("대칭차집합", s3)
9. set - 기타 메서드
- issubset: 부분 집합 여부
s1 = {1, 2, 3, 4}
s2 = {3, 4}
s3 = s1.issubset(s2)
print("부분집합", s3)
s3 = s2.issubset(s1)
print("부분집합", s3)
- issuperset: 상위 집합 여부, issubset과 결과는 반대
s1 = {1, 2, 3, 4}
s2 = {3, 4}
s3 = s1.issuperset(s2)
print("상위집합", s3)
s3 = s2.issuperset(s1)
print("상위집합", s3)
- isdisjoint: 교집합이면 False, 교집합이 아니면 True
s1 = {1, 2, 3, 4}
s2 = {3, 4}
s3 = s1.isdisjoint(s2)
print("교집합", s3)
s1 = {1, 2, 3, 4}
s2 = {5, 6, 7 ,8}
s3 = s1.isdisjoint(s2)
print("교집합", s3)
반응형
'Python' 카테고리의 다른 글
[Python] 리스트에서 특정 값 , 원소 위치, 원소 개수 (0) | 2021.09.27 |
---|---|
[python] 바이트배열을 정수로 (0) | 2021.09.27 |
[Python] 파이썬 map함수란? 사용 예제 (0) | 2021.09.15 |
Python에서 SQLite 사용 & 연동하기/파이썬 DB사용하기 (0) | 2021.09.13 |
[Python] 리스트 원소 제거 함수 비교/ remove,clear,pop, del (0) | 2021.09.11 |
댓글