티스토리 뷰
set( )
집합 자료형으로 변환하는 함수. 중복을 허용하지 않는 특성을 이용하여 unique 한 값을 남기고 중복을 제거할 때 사용한다. set 함수의 내용을 아래에서 계속 정리해보겠다.
- 순서 -
1. 집합 자료형 선언
2. 집합 자료형으로 변환
3. 중복되는 요소를 제거
1. 집합 자료형 선언
set( ) 함수나 중괄호{ }를 이용해서 선언할 수 있다. 그러나 값이 없는 집합 자료형을 선언할 때는 set( )을 이용해야 한다. 변수를 선언할 때, 중괄호{ } 안에 value만 있으면 set타입이 되지만 빈 괄호로 그냥 두어 값이 없거나 key - value 짝을 이루고 있으면 dictionary 타입이 된다. 리턴되는 값은 dict타입과 동일하게 { } 중괄호로 묶여 출력된다.
수학의 집합과 동일한 성질을 갖고 있어서 입력 순서는 중요하지 않다. 그렇기 때문에 원소의 위치를 나타내는 인덱싱을 활용하려면 set 타입으로는 활용할 수 없다. 그럴 때는 리스트로 변환하여야 한다.
사용 예시
>>> s1 = {3, 1, 2, 4, 5}
>>> print(type(s1), s1)
<class 'set'> {1, 2, 3, 4, 5}
>>> s2 = set(s1)
>>> print(type(s2), s2)
<class 'set'> {1, 2, 3, 4, 5}
2. 집합 자료형으로 변환
다른 자료형을 집합 자료형으로 변환한다. set( ) 함수를 이용하면 변환할 수 있다.
사용 예시
>>> list1 = [3, 1, 2, 4, 5]
>>> s3 = set(list1)
>>> print(type(s3), s3)
<class 'set'> {1, 2, 3, 4, 5}
>>> s4 = set([3, 1, 2, 4, 5])
>>> print(type(s4), s4)
<class 'set'> {1, 2, 3, 4, 5}
TypeError 발생
- set( ) 함수 안에 변수를 입력하지 않는 경우, 대괄호[ ]나 소괄호( )로 데이터를 묶어주어야 한다. 그렇지 않으면 에러 발생
- set( ) 함수 안에 2개 이상의 변수를 입력하는 경우 에러 발생
- 다른 자료형을 set( ) 함수가 아닌 중괄호{ }로 변환하려고 하면 에러 발생
3. 중복되는 요소 제거
집합 자료형의 중복을 허용하지 않는 특성을 이용하여 유일한 원소(unique한값)만 남길 수 있다.
사용 예시
>>> list2 = [1, 1, 3, 2, 5]
>>> print(set(list2))
{1, 2, 3, 5}
>>> list3 = ['o', 'x', 'ox', 'ox', 'ox']
>>> print(set(list3))
{'x', 'o', 'ox'}
리스트를 집합 자료형으로 변환하는 경우, 중복되는 요소가 제거되고 리스트의 원소 순서와 상관없이 출력된다.
파이 참 문서
set
def __init__(self, iterable: Iterable [_T] =...) -> None
--------------------
set() -> new empty set object set(iterable) -> new set object Build an unordered collection of unique elements. # (copied from class doc)
'파이썬 스킬업 > 파이썬 함수 & 문법' 카테고리의 다른 글
파이썬 f-string 문자열 포맷팅_ 문자열 정렬, 소수점 자릿수 지정 (Python) (1) | 2020.07.11 |
---|---|
파이썬 find( ), index( ) 비교 / 인덱스, 위치를 찾는 함수(Python) (2) | 2020.07.08 |
파이썬 replace( ) 문자열을 변경하는 함수 (Python) (1) | 2020.07.08 |