티스토리 뷰

반응형

 

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)

 

반응형
댓글
반응형