[기초 PYTHON 프로그래밍] 11강. 집합, 사전
- 집합(set) : 중복된 데이터를 가질 수 없고 순서가 없는 데이터 구조
- 인덱싱, 슬라이싱 안되며 (+), (*), in, not in, len() 안됨
- 집합(set)은 mutable 자료형이다.
s = {1, 2, 5} 집합 s 생성 S = set() 빈 집합 S 생성 |
- 집합(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()도 사용 가능
- 사전에는 (키:값)의 쌍으로 하나의 데이터 저장된다.
- 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)에서 사용 가능한 메소드
dir(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] 출력