티스토리 뷰
728x90
1. Set (집합)
Set은 다음과 같은 특징을 갖는다.
- 중복을 허용하지 않는다.
- 순서가 없다. → sort 함수 사용 불가
- 키가 존재하지 않고, 값 데이터만을 담는다.
특정 원소가 존재하는지를 검사하는 연산의 시간 복잡도는 사전 자료형과 마찬가지로 O(1)이다.
집합 자료형의 초기화
집합은 기본적으로 리스트 혹은 문자열을 이용해서 만들 수 있으며, set() 함수를 이용하거나, 중괄호({}) 안에 각 원소를 콤마(,)를 기준으로 구분해서 넣으면 된다.
data = set([1, 1, 2, 3, 4, 4, 5])
print(data) # {1, 2, 3, 4, 5}
data = set("LLISAA")
print(data) # {'L', 'I', 'S', 'A'}
data = {1, 1, 2, 3, 4, 4, 5}
print(data) # {1, 2, 3, 4, 5}
다음과 같이 선언할 경우 dictionary(dict) 자료형이 됨에 주의하자!
data = {} # data = dict()
집합 자료형의 연산
a = set([1, 2, 3, 4, 5])
b = {3, 4, 5, 6, 7}
합집합 '|'
print(a | b) # {1, 2, 3, 4, 5, 6, 7}
교집합 '&'
print(a & b) # {3, 4, 5}
차집합 '-'
print(a - b) # {1, 2}
집합 자료형 관련 함수
data = set([1, 2, 3])
add() : 하나의 집합 데이터에 값을 추가한다. O(1)
data.add(4)
print(data) # {1, 2, 3, 4}
update() : 여러 개의 값을 한꺼번에 추가한다.
data.update([5, 6])
print(data) # {1, 2, 3, 4, 5, 6}
remove() : 특정한 값을 제거한다. O(1)
data.remove(3)
print(data) # {1, 2, 4, 5, 6}
코딩 테스트>>
- 특정한 데이터가 이미 등장한 적이 있는지 여부를 체크할 때 매우 효과적이다.
- list에서 중복을 제거해야할 때 사용될 수 있다.
코딩테스트 연습 - 두 개 뽑아서 더하기 | 프로그래머스 (programmers.co.kr)
sorted(list(set(answer)))
위의 경우 list 자료형의 answer에 대해
- set 함수로 중복을 제거
- list 함수로 다시 list 자료형으로 변환
- sorted 함수로 list를 정렬해서 반환
의 과정을 나타낸 것이다.
변환
dict를 set으로 변환할 경우 key값만 가져온다.
value를 가져오고 싶을 경우 set(dict.value())를 사용해야한다.
728x90
'Python' 카테고리의 다른 글
[Python] 함수 (function) (0) | 2020.10.23 |
---|---|
[Python] 반복문 - while 문, for 문 (0) | 2020.10.23 |
[Python] 주석 - 한줄 주석, 여러줄 주석 (0) | 2020.10.21 |
[Python] 딕셔너리 (dictionary, 사전 자료형) (0) | 2020.10.21 |
[Python] 튜플 자료형 - ( , ) (0) | 2020.10.21 |
공지사항
최근에 올라온 글