딕셔너리(Dictionary) / 집합(Set)


딕셔너리(Dictionary)


  • 키를 이용하여 값을 저장하는 자료형

  • 정수형 인덱스가 아닌 키로 값을 저장 > 저장된 자료의 순서 의미 X

  • 중괄호 { }로 정의

  • 사전 자료형의 특징

    • 키와 값으로 자료 저장

      • 사전 자료형의 키 값에는 변경 불가능한 객체(튜플 포함) (> list와 같이 변할 수 있는 것은 키가 될 수 없음)

      • key의 자료형에는 제한이 없지만 일반적으로 문자열이 온다

        d = {
            1 : 1,
            'a' : [1, 2],
            (1, 2) : "a"
        }
        print(d)
      
        ### 출력
        ### {1: 1, 'a': [1, 2], (1, 2): 'a'}
      
    • 값의 추가, 수정이 매우 용이

      • 기존에 있는 키에 새로운 값 선언 > 새로운 값으로 변경

      • 기존에 없는 키 or 빈 딕셔너리 > 새로운 값 추가

        d = {
            'a' : 1,
            'b' : 2
        }
        d['a'] = 2
        d['c'] = 5
        print(d)
      
        ### 출력
        ### {'a': 2, 'b': 2, 'c': 5}
      
    • 함수 활용 가능 : Keys(key 값 모두 반환), Values(value 값 모두 반환), Items

        d = {
            'a': 1,
            'b': 2,
            'c': 3
        }
        print(d.keys())
        print(d.values())
        print(d.items())
      
        ### 출력
        ### dict_keys(['a', 'b', 'c'])
        ### dict_values([1, 2, 3])
        ###dict_items([('a', 1), ('b', 2), ('c', 3)])
      



집합(Set)


  • 데이터를 순서와 상관없이 모아놓은 자료형 (중복과 순서가 없는 자료형)

  • 순서 X > 인덱싱, 슬라이싱 불가능

  • 중괄호 { }로 정의

  • set 키워드 사용하여 정의 > set() 괄호 안에 리스트 / 문자열 입력 가능

      s = {1, 2, 3}
      s = set([1, 2, 3])
      s = set('Hello')
    
  • 집합 자료형의 특징

    • 교집합, 합집합, 차집합 연산 지원

        s1 = set([1, 2, 3, 4])
        s2 = set([3, 4, 5, 6])
        #교집합
        print(s1&s2)
        #합집합
        print(s1|s2)
        print(s1.union(s2))
        #차집합
        print(s1-s2)
        print(s1.difference(s2))
      
        ### 출력
        ### {3, 4}
        ### {1, 2, 3, 4, 5, 6}
        ### {1, 2, 3, 4, 5, 6}
        ### {1, 2}
        ### {1, 2}
      
    • 추가 : add() / update() 함수

      • add() : 하나의 값 추가

      • update() : 여러개의 값 추가

        s = {1, 2, 3, 4}
        s.add(5)
        s.update([6])
        s.update([7, 8])
        print(s)
      
        ### 출력
        ### {1, 2, 3, 4, 5, 6, 7, 8}
      
    • 삭제 : remove()

        s.remove(1)
        print(s)
      
        ### 출력
        ### {2, 3, 4, 5, 6, 7, 8}
      
    • 전체 제고 : clear()

  • Quiz) 집합 자료형을 이용해 리스트의 중복 값 제거하기

      l = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5]
      print(l)
      s = set(l)
      print(s)
      l = list(s)
      print(l)
    
      ### 출력
      ### [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5]
      ### {1, 2, 3, 4, 5}
      ### [1, 2, 3, 4, 5]
    

Categories:

python