ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자료형에 따른 활용법(함수 등) - 집합자료(set)
    파이썬 2020. 7. 1. 05:51

    1. 집합 자료형(set) 만들기 : set ( x )

    set를 만들기 위해서는 set( ) 함수를 써서 요소들을 넣어주면 만드는 것이 가능하다.

    >>> a = set([1,2,3])
    >>> a
    {1, 2, 3}

     

     

    2. 집합 자료형의 특징

    *집합 자료형의 가장 큰 특징은 중복을 허용하지 않는 것과 순서가 없다는 것이다.

    아래 예시와 같이 set()함수를 써줄 경우 그 안에 있는 요소들은 중복이 사라진다.

    >>> a = set("hello")
    >>> a
    {'h', 'o', 'l', 'e'}

     

     

    3. 집합 자료형으로 인덱싱 하는 법

    * 집합 자료형은 앞서 말했듯 순서가 없기 때문에 인덱싱이 불가능하다.

    * 인덱싱을 위해서 리스트 혹은 튜플로 변경하여 인덱싱을 해야한다.

    >>> a = set([1,2,3,4,5])
    >>> a
    {1, 2, 3, 4, 5}
    >>> b = list(a) #set를 리스트로 바꾸는 함수
    >>> b
    [1, 2, 3, 4, 5]
    >>> b = b[0:2] #세트를 리스트로 슬라이싱 하는 부분
    >>> b
    [1, 2]
    >>> b = set(b) #리스트를 set로 바꾸는 함수
    >>> b
    {1, 2}
    >>> a = set([1,2,3,4,5])
    >>> b = tuple(a) #세트를 튜플로 바꾸는 함수
    >>> c = list(a) # 리스트를 듀플로 바꾸는 함수
    >>> b
    (1, 2, 3, 4, 5)
    >>> c
    [1, 2, 3, 4, 5]

     

     

     

     

    4. 집합 자료형으로 교집합 / 합집합 / 차집합 구하기

    교집합 구하기 : set( x ) & set ( y ) or x.intersection( y )

    >>> s1 = set([1, 2, 3, 4, 5, 6])
    >>> s2 = set([4, 5, 6, 7, 8, 9])
    >>> s1 & s2
    {4, 5, 6}
    >>> s1.intersection(s2)
    {4, 5, 6}

     

    합집합 구하기 : set( x ) | set( y ) or x.union( y )

    >>> s1 = set([1, 2, 3, 4, 5, 6])
    >>> s2 = set([4, 5, 6, 7, 8, 9])
    >>> s1 | s2
    {1, 2, 3, 4, 5, 6, 7, 8, 9}
    >>> s1.union(s2)
    {1, 2, 3, 4, 5, 6, 7, 8, 9}

     

    차집합 구하기 : set( x ) - set( y ) or x.difference( y )

    >>> s1 = set([1, 2, 3, 4, 5, 6])
    >>> s2 = set([4, 5, 6, 7, 8, 9])
    >>> s1 - s2
    {1, 2, 3}
    >>> s2.difference(s1)
    {8, 9, 7}

     

     

    5. 집합 자료형 관련 함수

    값 1개 추가하기 : x.add( y )

    >>> s1 = set([1, 2, 3])
    >>> s1.add(4)
    >>> s1
    {1, 2, 3, 4}

     

    값 여러개 추가하기 : x.update( y )

    >>> s1 = set([1, 2, 3])
    >>> s1.update([4, 5, 6])
    >>> s1
    {1, 2, 3, 4, 5, 6}

     

    특정 값 제거하기 : x.remove( y )

    * 집합 자료형은 순서가 없기 때문에 인덱싱을 할 수 없다.

    * del 함수와 같이 위치를 찾아서 삭제하는 함수는 사용할 수 없다.

    >>> s1 = set([1, 2, 3])
    >>> s1.remove(3)
    >>> s1
    {1, 2}

     

    모든 값 제거하기 : x.clear( )

    >>> s1 = set([1, 2, 3])
    >>> s1.clear()
    >>> s1
    set()
Designed by Tistory.