ssoL2 TISTORY

[기초 PYTHON 프로그래밍] 11강. 집합, 사전 본문

com/python

[기초 PYTHON 프로그래밍] 11강. 집합, 사전

ssoL2 2020. 12. 25. 00:29

- 집합(set) : 중복된 데이터를 가질 수 없고 순서가 없는 데이터 구조

- 인덱싱, 슬라이싱 안되며 (+), (*), in, not in, len() 안됨

- 집합(set)은 mutable 자료형이다.

 

s = {1, 2, 5}

집합 s 생성

S = set()

빈 집합 S 생성

 

- 집합(set) 메소드 사용하기

 

집합(set)으로 이용 가능한 메소드
집합(set)에서 이용 가능한 메소드

 

- 집합.메소드 1 : 집합에 원소 추가하기

 

set.add(x)

집합 set에 데이터 x를 추가

ex)  A = {4,2,6,8,3}

      A.add(5)

      print(A) # {2,3,4,5,6,8} 출력 (집합은 순서가 없기에 랜덤이다)

      A.add(3)

      print(A) # {2,3,4,5,6,8} 출력 (이미 있는 데이터 추가시 변동x)

 

 

- 집합.메소드 2 : 집합에서 원소 삭제하기 / 공집합 만들기

 

set.pop()

집합에서 임의의 원소 반환하고 삭제

set.clear()

집합을 공집합으로 만든다

ex) A = {1,3,5,6,4}

     >>> A.pop() # <대화형 모드>에서 1 출력

    print(A) # {3,4,5,6} 출력 (순서도 랜덤으로 바뀔 수 있는 것임)

    A.clear()

    print(A) # set() 출력 

 

 


 

 

- 사전(dict) 는 집합의 일종이므로 사전 또한 순서 개념 X

- (+), (*) 연산은 못하지만, 인덱스 기호([])는 할 수 있으며 in, not in, len()도 사용 가능

- 사전에는 (키:값)의 쌍으로 하나의 데이터 저장된다.

 

사전의 예시 / 1반 25명, 2반 30명, 3반 27명이라는 정보를 저장함

 

- mutable 자료형은 '키'가 될 수 없다. ex) 리스트(list), 집합(set), 사전(dict)

- 즉, 정수(int), 실수(float), bool, 복소수(complex), 문자열(str), 튜플(tuple)은 '키'가 가능하다.

 

- 모든 자료형이 '값'이 가능

 

- 빈 사전 생성하기

 

dict = {}  or dict = dict()

빈 사전 생성

 

- 사전에 아이템 추가 및 수정하기

 

dict['새로운 키'] = 새로운 값

사전에 아이템 추가

dict['기존 키'] = 새로운 값

사전에 아이템 수정 (이때, 키는 바꿀 수 없고 값만 가능하다)

 

- 사전에 아이템 삭제하기 및 in, not in, len() 가능

 

del dict['기존의 키']

사전에 아이템 삭제

>>> len(dict) # (키:값) 쌍 개수 출력

>>> '기존 키' in dict # True 출력

>>> '새로운 키' not in dict # True 출력

 

- 사전(dict)에서 사용 가능한 메소드

 

사전(dict)에서 사용 가능한 메소드

dir(dict)

사전(dict)에서 사용 가능한 메소드 출력

 

사전(dict)에서 사용 가능한 메소드

 

- 사전.메소드 1 : clear() 메소드

 

dict.clear()

사전의 내용 모두 삭제

ex) D = {1:30, 2:25, 3:27}

     D.clear()

     print(D) #{} 출력

 

 

- 사전.메소드 2 : copy() 메소드

 

dict.copy()

사전을 복사함 (새로운 사전이 새로운 객체를 가리킴)


D1 = {1:30, 2:25, 3:27}

D2 = D1

새로운 사전 D2가 기존 사전 D1의 객체를 똑같이 가리킴

이전 개념인 리스트(list)에서의 복사 개념과 같다.

 

 

- 사전.메소드 3 : update(dict) 메소드

dict.update(dict2)

사전 dict에 사전 dict2를 연결 즉, 추가한다. (당연히 순서는 의미가 없다)

ex) Voca = {1:'one', 2:'two', 3:'three'}

     Voca2 = {100:'hundred', 1000:'thousand'}

     Voca.update(Voca2)

     print(Voca) # {1: 'one', 2: 'two', 3: 'three', 1000: 'thousand', 100: 'hundred'} 출력

     print(Voca2) # {1000: 'thousand', 100: 'hundred'} 출력

 

 

- 사전.메소드 4 : items() 메소드

- 굉장히 많이 쓰는 메소며 사전에서 (키,값)을 쌍으로 반환한다.

 

dict.items()

사전에 있는 모든 데이터의 (키,값) 쌍을 반환

ex) 사전 count는 A 영어 학원의 각 강좌 등록생 수 저장

     count = {'toefl':40, 'toeic':50, 'sat':25}

     A = count.items()

     print(A) # dict_items([('sat', 25), ('toefl', 40), ('toeic', 50)]) 출력

                  (dict_keys로 출력이 되는데 이건 파이썬이 하는 짓임)

 

     B = list(count.items()) # 그래서 이렇게 리스트(list)로 만들어서 하면 됨

     print(B) # [('sat', 25), ('toefl', 40), ('toeic', 50)] 출력

 

 

- 사전.메소드 5 : keys() 메소드

- 굉장히 많이 쓰는 메소며 사전에서 키 반환한다.

 

dict.keys()

사전에 있는 키만을 반환

ex) 사전 count는 A 영어 학원의 각 강좌 등록생 수 저장

    count = {'toefl':40, 'toeic':50, 'sat':25}

    A = count.keys()

    print(A) # dict_keys(['sat', 'toefl', 'toeic']) 출력 

              (dict_keys로 출력이 되는데 이건 파이썬이 하는 짓임)

 

    B = list(count.keys())  # 그래서 이렇게 리스트(list)로 만들어서 하면 됨

    print(B) # ['sat', 'toefl', 'toeic'] 출력

 

 

- 사전.메소드 6 : values() 메소드

- 굉장히 많이 쓰는 메소며 사전에서 값만 반환한다.

 

dict.values()

사전에 있는 값만을 반환

ex) 사전 count는 A 영어 학원의 각 강좌 등록생 수 저장

    A = count.values()

    print(A) # dict_values([25, 40, 50]) 출력 

              (dict_values로 출력이 되는데 이건 파이썬이 하는 짓임)

    B = list(count.values())  # 그래서 이렇게 리스트(list)로 만들어서 하면 됨

    print(B) # [25, 40, 50] 출력

 

 

Comments