C.E/Python(DeepLearning)

파이썬 사전 자료형(dictionary)

숨[Breath] 2018. 5. 17. 15:48

어휴 이 '사전 자료형' 이란 것이 구문이 좀 이상하게 생겨먹어서 종종 틀려먹게 된다.


사전 자료형은 리스트 자료형 처럼 데이터를 저장하는데 인덱스를 이용해서 데이터를 얻는 게 아니라 'KEY'를 이용해서 '값(value)'을 얻을 수 있다. (....아직 딱히 실전에서 쓸 일이 없었다...)



1. 사전 자료형을 선언할 때에는

사전 자료형 명 = { '키' : '값' , 'KEY' : 'value' } 로 선언할 수 있는데,

>>> abc = { '신발' : '파는 마트' , '265mm신발' : 55000}


이런 형식으로 선언해서 사용한다. 근데 이 생키가 겁나게 웃긴 생키인 이유는 문자, 숫자 뿐만이 아니라 리스트도 안에 포함할 수 있다는 것이다. 거의 뭐 소라카 어머니의 마음 수준이랄까; 다 품어주신다.


>>> abc = { '신발' : '파는 마트' , '265mm신발' : 55000, ['소','라','카']}

이런 상태가 가능하단 거다.



2.

그래서 임마는 키를 통해서 값을 얻기 때문에, 순서 상관 없는 데이터를 다룰 때 유용하시단다.

>>> print abc['신발']

#=> 파는 마트

형태의 출력문이 나온다.



3.

여튼 이 쌍쌍바는 키랑 값을 쌍으로 넣어줘야하는 개쌍쌍바 같은 아인데 추가할 때에는

>>> abc['일하기']='싫다'

형식으로 추가할 수 있다.



4. 그래도 일을 하고 싶은 사람이 있을 수 있으니까 삭제해주자.

>>> del abc['일하기']

요렇게 하면 삭제 된다.




5. 요 안에 있는 key들을 가지고 올라면 key() 함수를 쓰면 돼고,

value들을 가지고 오려면 values()를 사용하면 된다.

>>> key_temp = abc.key()

>>> value_temp = abc.values()



6. 임마를 리스트로 반환할라면은

>>> list_temp = abc.items()

이렇게 사용하면 된다. 근데 왜 리스트는 list가 아니냐



8. 임마 안에 있는 것들을 리스트의 인덱스 a[0] 처럼 가지고 오고 싶다면 

사전자료형명.get(키) 하면 된다.


>>> abc.get('신발')

>>> abc['신발']


형식으로 값을 가지고 올 수 있다.




9. 전부 삭제하고 싶다. 빡친다 하면

>>> abc.clear()

를 하도록 하자.



10. 삭제 후, get과 []의 차이가 있는데,

>>> abc.get('신발')

>>> abc['신발']


를 처리 했을 때 get은 None 이란 결과 값을 주고, [] 는 에러 구문을 띄운다.



11. 그리고 제일 중요한 것은 해당하는 키가 있는지 검색해보는 것인데,

'키이름' in 사전자료형명

으로 검색할 수 있다. 있으면 True를 없으면 False를 준다.


>>> '신발' in abc




사전 자료형 끗-