티스토리 뷰
- {}로 표현
- 중복을 허용하지 않고
- 순서가 없음(unordered)
- 집합 자료형은 순서가 없기때문에 인덱싱으로 값을 얻을 수 없음
- 중복을 허용하지 않는 set의 특징은자료형의 중복을 제거하기 위한 필터 역할
집합 생성
집합 자료형은 다음과 같이 set 키워드를 사용해 만들 수 있다.
set()
fruits = {'apple', 'banana', 'orange'}
s = set(자료1, 자료2, 자료3...)
#H, l 문자가 하나씩 없고, 순서가 다름 ➔ 중복 제거, 순서 없음
s = set('hi, hello')
print(s)
만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 다음과 같이 리스트나 튜플로 변환한 후에 해야 한다.
#리스트로변경
s1 = set([1,2,3])
s1 = list(s1)
print(s1)
s1[0]
#투플로 변경
s1 = set([1, 2, 3])
t1 = tuple(s1)
print(t1)
t1[0]
2.집합 관련 함수 (매서드)
add()
- 값1개 추가 : 이미 만들어진 set 자료형에 값을 추가할 수 있다. 1개의 값만 추가add할 때는 다음과 같이 하면 된다.
s1 = {1,2,3,4}
print(s1)
s1.add(5)
print(s1)
update()
- 값 여러 개 추가하기
s1.update([4,5,6])
print(s1)
remove()
- 특정값을 제거
s1.remove(1)
print(s1)
3.세트를 이용한 집합 연산
#교집합 &
s1 = {1,2,3}
s2 = {3,4,5}
s3 = s1 & s2
print(s3)
#합집합 (|)
s3 = s1 | s2
print(s3)
아래와 같이 여러 세트를 리스트에 담은 뒤 set의 메서드를 쓸 수도 있습니다.
- set.intersection(*list_of_sets) # 교집합
- set.union(*list_of_sets) # 합집합
fruits = {'apple', 'banana', 'orange'}
companies = {'apple', 'microsoft', 'google'}
print(fruits.intersection(companies))
print(fruits.union(companies))
728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
반응형