본문 바로가기
프로그래밍 관련/파이썬

파이썬. 딕셔너리 자료형. dictionary 자료형

by 존버매니아.임베디드 개발자 2021. 10. 25.
반응형

딕셔너리 자료형은 c언어에는 존재하지 않고
c++ STL에서는 map 자료형이랑 비슷하다.

배열인데 배열의 인덱스가 자유로운 배열이랄까?
(c언어의 배열은 인덱스가 무조건 정수 밖에 안된다)

근데 딕셔너리 자료형은 인덱스 자리에 정수,소수,문자열 아무거나 다 된다.

 

c언어의 배열은

int arr[10];

arr[0]= 5

arr[1] =2 이런식인데

int arr[10];

arr[0]= 5;
arr[1] =2;

 

파이썬의 딕셔너리는 인덱스 안에 다양한게 들어간다. (아래 코드 참조)

arr = {}  #arr이 딕셔너리라고 선언하는 방법이다.
          #참고로 arr = [] 는 list 선언하는 방법이니까 헷갈리지 말자.

arr['김철수'] = 1234
arr[534]  = "오징어"

여기서 김철수, 534를 딕셔너리의 key 라고 부른다.

 

 arr = {} #이것은 파이썬에서 딕셔너리 선언을 의미한다.

 arr = [] #이것은 파이썬에서 리스트 선언을 의미하니까 헷갈리지 말자.


딕셔너리에 특정 키가  존재하는지 찾는법
        in    을 쓴다.

 

dic = {}
dic["임범재"] = "해고"
dic["정주영"]= "해봤어"
dic[486] = "비밀번호"

print( 486 in dic)
print( "임범재" in dic)
print(1234 in dic)
>>> True
>>> True
>>> False

※ 유의사항!!! if 문 쓸때 괄호를 해줘야한다.

dic={}
dic["가나다라"] =1

if "가나다라" in dic == True:
	print("ㅇㅇ")

if ("가나다라" in dic) == True:
	print("ㅇㅇ")

위 예시에서 첫번쨰 if문의 경우 우리가 기대하기를 가나다라 라는 키가 딕셔너리에 있기 때문에

true로 실행되길 기대할 것이다.

그러나 실제로 실행해보면 우리가 원하는대로 실행이 안된다.

연산자의 우선순위가 어떻게 되는건진 모르겠는데 두번째 if 문처럼 꼭 괄호를 쳐야한다


딕셔너리에서 특정 키 삭제하는 방법

dic = {}
dic["임범재"] = "해고"
dic["정주영"]= "해봤어"
dic[486] = "비밀번호"

del dic[486]

딕셔너리 순회

dic={}

dic["abc"]=123
dic["test"]="가나다라"
dic[563]=1234

#이렇게 순회하면 key 값만 나온다.
for i in dic:
    print(i)

>>> abc
>>> test
>>> 563

#이렇게 순회하면 key값, value 값 같이 나온다.
for i,j in dic.items():
    print(i)
    print(j)

>>> abc
>>> 123
>>> test
>>> 가나다라
>>> 563
>>> 1234

#이렇게 순회하면 value 값만 나온다.
for i in dic.values():
    print(i)
    
>>> 123
>>> 가나다라
>>> 1234

 

 

 

반응형