Dolphins의 HelloWorld

Python의 Dictionary 본문

python

Python의 Dictionary

돌핀's 2018. 7. 6. 12:31

Dictionary을 생성해주는 기본적인 형태는


my_dict = dict() 이다.


Dictionary는 c++이나 java의 map의 개념과 비슷하다


즉 key를 통해 value를 찾는 것이다.


아래의 예시를 통해 이러한 Dictionary의 특성을 살펴보자.


my_dict = dict()
my_dict['first'] = 1; my_dict['second'] = 2
my_dict['third'] = 3
print(my_dict)
my_dict['third'] = my_dict['third'] +3
print(my_dict['third'])




빈도수 측정하기


Dictionary를 사용하면 우리가 원하는 특정 단어가 얼마나 자주 등장하는지 측정하는 것이 가능하다.


방법은 간단하다.


list를 검사하면서 (만약 문자열 검사라면 list로 변환한 후 검사해주면 된다.) 단어를 key로 삼아 만약 그 단어를 처음 만났다면 dirctionary에 새로 추가해주고 한번 만났던 단어라면 value를 증가시켜주면 된다.


아래의 예시를 통해 살펴보자.


names = ['David','Degea','Samsen','Wilson','David','Wilson','Sam']
my_dict = dict()
for name in names:
    if name not in my_dict:
        my_dict[name] = 1
    else:
        my_dict[name] = my_dict[name]+1

print(my_dict)




get 메소드 사용


위의 코드에서 dictionary에 key가 있는지 없는지에 따라 처리해주기 위해여 조건문을 이용한 것을 볼 수 있다.


get메소드를 사용한다면 이런 번거로운 과정을 한줄로 줄일 수 있다.


my_dict.get(name,0)


이런 형태로 쓰는데 이것의 의미는 my_dict라는 dictionary에서 name이라는 키가 존재할 경우 

그 값을 반환하며, 키가 존재하지 않을경우 name이라는 키에 0이라는 값을 갖는 데이터를 추가하라는 의미이다.


이 형태를 사용해서 위에서 봤던 예시코드를 수정해보겠다.


names = ['David','Degea','Samson','Wilson','David','Wilson','Sam']
my_dict = dict()
for name in names:
    my_dict[name] = my_dict.get(name,0) + 1
print(my_dict)




Dictionary에서 key와 value를 추출하기


for in 을 통해 dictionary에 있는 값을 받으면 변수에 key값이 들어가게 된다.


for key in my_dict:
    print(key)



이렇게 key를 얻어내는 방식 말고도 다른 명령어를 사용하여 dictionary를 통해 key와 value를 별도로 얻어낼 수 있다.


아래의 예시를 통해 어떤 명령어가 있는지 또 어떻게 사용되는지 확인해보겠다.


print(list(my_dict)) #key로만 구성된 list 추출
print(my_dict.keys()) #key만 별도로 추출
print(my_dict.values()) #value만 별도로 추출
print(my_dict.items()) #key와 value 세트를 추출




위의 코드를 보면 items 메소드를 썼을 때 key와 value가 같이 출력되는 것을 볼 수 있다..


이렇게 두개 이상의 값이 연관되어있을 떄 


파이썬의 반복문에서는 한번에 두개 이상의 값을 받아서 활용할 수 있다.


예시를 보면 쉽게 이해가 될 것이다.


for x,y in my_dict.items():
    print('{},{}'.format(x,y))



연관된 2개의 값을 변수를 2개 사용해서 한번에 받을 수 있는것을 볼 수 있다.



'python' 카테고리의 다른 글

Python의 정규식  (0) 2018.07.09
Python의 tuple  (0) 2018.07.06
Python의 list2  (0) 2018.07.05
Python의 파일 입출력  (0) 2018.07.05
Python의 문자열  (0) 2018.07.04
Comments