Dictionary (딕셔너리)
- 중복이 불가능한 collection 자료형
- 가변성(mutable)
- key-value 구조
- key 중복이 안됨
- key에 리스트 사용 X
- 연관 배열(Associative array) 또는 해시(Hash)와 같은 자료형
Dictionary 자료형
딕셔너리 표현
d=dict()
{Key1:Value1, Key2:Value2, Key3:Value3, ...}
딕셔너리 쌍 추가, 삭제하기
<딕셔너리 쌍 추가>
a={1:'a'}
a[2]='b'
a[3]=[1, 2, 3]
a['name'] = 'pey'
<딕셔너리 요소 삭제>
[del dict_obj[key]]
del a[1]
pop 메소드 사용
[pop(key[,default])]
: key값에 해당하는 value 리턴, key가 없다면 두번째 파라미터인 default 리턴
my_dict = {'김철수': 300, 'Anna': 180}
my_dict.pop('김철수', 180)
my_dict = {'김철수': 300, 'Anna': 180}
my_dict.pop('홍길동', 180)
딕셔너리를 사용하는 방법
grade = {'pey': 10, 'julliet': 99}
grade['prey']
a = {1:'a', 2:'b'}
a[1]
a = {'a':1, 'b':2}
a['a']
딕셔너리 함수
- <key 리스트 만들기(keys)>
리스트 고유의 append, insert, pop, remove, sort 함수 수행 X
a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
a.keys()
for k in a.keys():
print(k)
list(a.keys())
a.values()
a.items()
dict = {'김철수': 300, 'Anna': 180}
for key, value in dict.items():
print(key, value)
'''
김철수 300
Anna 180
'''
- <Key:Value 쌍 모두 지우기(clear)>
a.clear()
a
- <Key로 Value 얻기 (get, [])>
a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
a.get('name')
딕셔너리에 존재하지 않는 키로 값을 가져오는 방식
a.get('abc') 방식 vs a['abc'] 방식
a.get('abc')의 경우 None("거짓"이라는 의미) 반환
a['abc']의 경우 오류 발생
딕셔너리 안에 찾으려는 Key가 없을 경우 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때
get(x, '디폴트 값')
a.get('nokey', 'foo')
1.
get 메소드를 아용해 원소 가져오기 1
dict = {'하이': 300, '헬로': 180}
dict.get('동동', 0)
2.
get 메소드를 아용해 원소 가져오기 2
dict = {'하이': 300, '헬로': 180}
dict.get('헬로', 0)
3.
[] 기호 사용해 원소 가져오기
dict = {'하이': 300, '헬로': 180, 3: 5}
dict['헬로']
- <딕셔너리에 Value를 집어넣거나 업데이트할 때 []사용 (set)>
a = {'name':'pey', 'phone':'010-9999-1234', 'birth': 1118}
a['name'] = 'pin'
a['birth'] +=1
- <해당 Key가 딕셔너리 안에 있는지 조사하기(in)>
a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
'name' in a
'email' in a
d.copy()
d.fromkeys()
Set (셋, 집합)
- 요소의 중복이 불가능한 내장모듈 collection 자료형
- 가변성(mutable)
- 비순차적(Not iterable)
- 순서가 없음(Unordered)
- 중복제거, 교집합, 합집합, 차집합 등의 수학적인 계산이 가능
- add(), update(), remove() 메소드를 활용하여 요소/삭제 가능
Set 자료형
집합 표현
s=set()
s1={1, 2, 3, 4, 5}
s2= set([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
s2
s3 = set("Hello")
s3
<set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환한 후 해야 함>
s1 = set([1,2,3])
l1 = list(s1)
l1
l1[0]
t1 = tuple(s1)
t1
t1[0]
교집합, 합집합, 차집합 구하기
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
<교집합>
s1 & s2
s1.intersection(s2)
<합집합>
s1 | s2
s1.union(s2)
<차집합>
s1 - s2
s1.difference(s2)
s2 - s1
s2.difference(s1)
그 외
<대칭 차집합>
s1^s2
집합 함수
<값 1개 추가하기(add)>
s1 = set([1, 2, 3])
s1.add(4)
s1
<값 여러 개 추가하기(update)>
s1 = set([1, 2, 3])
s1.update([4, 5, 6])
s1
<특정 값 제거하기(remove)>
s1 = set([1, 2, 3])
s1.remove(2)
s1
출처
개념 출처
코드 출처 (1)
코드 출처 (2)