728x90
반응형
set()이란 ?
set() 은 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.
순서가 없고, 집합안에서는 unique한 값을 가지고 mutable 객체다.
집합 자료형은 다음과 같이 set 키워드 를 사용해 만들 수 있다.
s1 = set([1,2,3])
print(s1)
# result : {1,2,3}
set()의 괄호 안에 리스트를 입력하여 만들 수 있고, 문자열을 입력해 만들 수도 있다.
s2 = set("hello")
print(s2)
# result : {'o', 'h', 'l', 'e'}
set( )의 특징
- 중복을 허용하지 않는다.
- 순서가 없다.
리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만,
set 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.
만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트 or 튜플로 변환한 후 해야 한다.
s1 = set([1,2,3])
l1 = list(s1)
print(l1) # result : [1,2,3]
print(l1[0]) # result : 1
t1 = tuple(s1)
print(t1) # result : (1,2,3)
print(t1[0]) # result : 1
교집합, 합집합, 차집합
set 자료형을 정말 유용하게 사용하는 경우는 교집합, 합집합, 차집합을 구할 때이다.
s1 = set([1,2,3,4,5,6])
s2 = set([4,5,6,7,8,9])
1) 교집합
- & 기호를 사용하여 교집합 구하기
s3 = s1 & s2
print(s3) #result : {4,5,6}
- intersection()을 사용하여 교집합 구하기
s3 = s1.intersection(s2)
print(s3) #result : {4,5,6}
2) 합집합
- | 기호를 사용하여 합집합 구하기
s3 = s1 | s2
print(s3) #result : {1, 2, 3, 4, 5, 6, 7, 8, 9}
- union()을 사용하여 합집합 구하기
s3 = s1.union(s2)
print(s3) #result : {1, 2, 3, 4, 5, 6, 7, 8, 9}
3) 차집합
차집합을 구할 때는 어떤 집합이 앞에 오느냐에 따라 값이 달라진다.
- -를 사용하여 차집합 구하기
s3 = s1 - s2
print(s3) #result : {1, 2, 3}
s3 = s2 - s1
print(s3) #result : {8, 9, 7}
- difference()를 사용하여 차집합 구하기
s3 = s1.difference(s2)
print(s3) #result : {1, 2, 3}
s3 = s2.difference(s1)
print(s3) #result : {8, 9, 7}
집합 자료형 관련 함수들
1) 값 1개 추가히기(add)
- 이미 만들어진 set 자료형에 값을 추가할 수 있다.
s1 = set([1,2,3])
s1.add(4)
print(s1) #result : {1, 2, 3, 4}
2) 값 여러개 추가하기(update)
s1 = set([1,2,3])
s1.update([4,5,6])
print(s1) #result : {1, 2, 3, 4, 5, 6}
3) 특정 값 제거하기(remove)
s1 = set([1,2,3])
s1.remove(2)
print(s1) #result : {1, 3}
참고
728x90
반응형
'Python' 카테고리의 다른 글
파이썬(Python) in, not in (0) | 2022.01.30 |
---|---|
[Python 문법] 파이썬 입력 받기(sys.stdin.readline) (0) | 2022.01.28 |
파이썬 : re.compile (0) | 2022.01.02 |
정규표현식 : 파이썬 개념 잡기 (0) | 2022.01.01 |
sorted 함수 (0) | 2021.12.09 |