[파이썬] dictionary의 활용
목차
0. 딕셔너리란?
1. 딕셔너리 만들기
2. 딕셔너리에 key 값과 value값 할당하기
3.. key값으로 value값 출력하기
4. value값으로 key값 출력하기
5. in, not in 활용하여 key값 찾기
6. 딕셔너리의 key 값만 출력하기
7. 딕셔너리의 value 값만 출력 하기
0. 딕셔너리(dictionary)란?
딕셔너리는 immutable한 key와 mutable한 value로 이루어진 순서가 없는 집합이다.
일반적으로 {'a' : 1, ' b' : 2 }의 모습은 띈다.
1. 딕셔너리 만들기
a={} a=dict() #빈 리스트 만들기
a = {1: 5, 2: 3} # int를 사용한 dictionary 만들기
a = {(1,5): 5, (3,3): 3} # tuple을 사용한 dictionary 만들기
a = { 3.6: 5, "abc": 3} # float를 사용한 dictionary 만들기
a = { True: 5, "abc": 3} # bool을 사용한 dictionary 만들기
a = { {1, 3}: 5, {3,5}: 3} #set을 사용한 dictionary는 mutable 객체이므로 에러 발생
a = {[1,3]: 5, [3,5]: 3} #list를 사용한 dictionary는 mutable 객체이므로 에러 발생
a = { {"a":1}: 5, "abc": 3} #dict를 사용한 dictionary는 mutable 객체이므로 에러 발생
2. dictionary에 key값과 value값 할당하기
dictionary는 값은 중복 될 수 있지만, 키가 중복되면 마지막 값으로 덮어씌워진다.딕셔너리[키]=값 의 형태로 할당가능하다ex) a={}a['c']=3a => {'c' : 3}
3. key값으로 value값 출력하기
dictionary는 순서가 없기 때문에 인덱스로는 접근할 수 없고 key로 접근 가능하다.
ex)
a['b'] => '2'
a.get('b') => '2'
4. value값으로 key값 출력하기
[k for k, v in adic.items() if v == '3']
위의 방식을 이용해 value를 이용해 key를 찾는다면 매번 딕셔너리 전체를 순회하면서 가져오기 때문에 비효율적일 수 있다. 따라서 딕셔너리의 key, value 값을 뒤집어 찾는 방식도 있다.
adic = {'a': '1', 'b': '2', 'c': '3'}
bdic = {v:k for k,v in adic.items()}
bdic.get('2')
기존 방법보다 2배의 저장 공간을 사용하는 단점과 value값에 중복이 있는 경우 1개만 저장되는 단점이 존재한다.
그렇더라도 더 빠른 속도가 필요한 경우 유용하게 사용가능하다.
5. in, not in 활용하여 key값 찾기
키 in 딕셔너리 의 형태로 확인 가능하며 특정 키가 있다면 True, 없다면 False가 나온다.
반대로 in 앞에 not를 붙이면 특정 키가 없는지 확인한다.
6. 딕셔너리의 key 값만 출력하기
for key in x.keys():
... print(key)
7. 딕셔너리의 value 값만 출력 하기
for value in x.values():
... print(value)