티스토리 뷰
# set 선언
s = set()
# list로 casting
l = list(s)
파이썬 공식 사이트에 따른 set에 대한 설명은 아래와 같다.
: set 객체는 해시 가능한 별개의 객체들의 정렬되지 않은 컬렉션(collection이다. 멤버십 확인, 배열에서 중복 제거, 교집합, 합칩합, 차집합, 대칭 합 같은 수학 연산 계산 등에 주로 사용된다.
다른 컬렉션과 마찬가지로 set는 x in set, len(set), for x in set를 지원한다. 정렬되지 않은 컬렉션이기에 set는 요소의 위치나 삽입 순서를 기록하지 않는다. 따라서 set는 index나 slice 또는 기타 순서에 대한 동작을 지원하지 않는다.
현재 기본 제공 set 유형에는 set와 frozenset 두 가지가 있다. set 유형은 가변성(mutable)을 갖는다. - add()나 remove() 같은 방법으로 내용 변경이 가능하다. 그렇기에 해시 값(hash value)는 갖지 않고 dictionary의 key 또는 다른 set의 요소로 사용이 불가하다. frozenset는 불변(immutable)하고 해시가 가능하다(hashable) - 한 번 생성이 되면 내용 변경이 불가하다; 따라서 dictionary의 key 또는 다른 set의 요소로 사용이 가능하다.
set의 구현을 살펴보면 hash table을 사용하기에 어떤 요소가 포함이 됐는지 여부를 찾을 때 시간 복잡도는 O(1)이기에 O(n)인 list에 비해 빠르다. 흔히 알고리즘 문제를 풀 때 방문 여부를 확인할 때 사용하는 visit을 list로 구현했을 때보다 set로 구현할 때 빠르다.
앞서 설명한 바와 같이 list와 다르게 index를 통한 접근이 불가하기에 혹 index로 접근하고 싶으면 set를 list로 캐스팅(casting) 후 사용하면 된다.
참고
- https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset
'기술(Tech, IT) > 파이썬(Python)' 카테고리의 다른 글
[Python] numpy ones (0) | 2023.08.09 |
---|---|
[Python] set 함수(method, function) (0) | 2023.07.27 |
[Python] Set(세트) vs List(리스트) 검색 속도 비교 (0) | 2023.06.28 |
[Python] TypeError: 'int' object is not subscriptable (0) | 2023.05.11 |
[Python] 변수 간 복사(대입, copy) (0) | 2023.01.28 |
- Total
- Today
- Yesterday
- ml
- join
- 이코노미스트
- 딕셔너리
- C++
- vertex shader
- socket programming
- java
- 오블완
- 투 포인터
- The Economist Espresso
- Android
- 이코노미스트 에스프레소
- Computer Graphics
- 리트코드
- 파이썬
- Hash Map
- Python
- The Economist
- 머신 러닝
- min heap
- 티스토리챌린지
- tf-idf
- 안드로이드
- I2C
- defaultdict
- 소켓 프로그래밍
- machine learning
- DICTIONARY
- leetcode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |