사전(Dictionary) (**)

파이썬에서 리스트와 함께 굉장히 많이 사용되는 구조. 

  • 파이썬에서 제공하는 사전 자료형은 key - value 방법을 통해 저장한다.

namecode

"John" 0011
"Maria" 1234
  • 이런 table concept을 의미하며, 정수 index가 아닌 key값을 통해서 value를 access한다.

*key-value 방식으로 저장을 하는 것으로 얻는 이점은?

 

*A. 순서가 아닌 의미가 있는 값을 통해서 데이터 접근이 가능하다.

  • 같은 말로 Hash Table이라고 불리며 데이터 관리에서 굉장히 중요한 개념이다.
  • 파이썬에서 사전 자료형은 {}을 이용하여 표현하는데, 집합과의 차이점을 두기 위해 원소에 반드시 :가 들어가야 한다.
  • 사전을 표현할 때는 {key : value, key2 : value2, ... } 형태로 표현한다.

e.g. {'a' : 1', "b" : 3}

 

D = {"major" : "statistic""name" : "HanJiWoong"}
D
# 위에 나온 테이블 예시를 사전으로 만들어봅니다.
D= {"John" : '0011'"Maria" : '1234'}
D
 

# 사전 D에 key가 'a'이고 value가 3인 원소를 추가하자.
# 만약에 indexing하려는 key가 존재하지 않는 경우엔, assign을 하게되면 key-value pair가 추가됩니다.
# 아닌 경우에는 assign 하게되면 value가 업데이트 됩니다.
D['a'] = 5
D
D["a"# key값이 이미 존재하는 경우에는 key값을 통한 indexing이 되며, key값이 존재하지 않을 때는 assignment를 사용하여 원소를 추가한다.

D2 = {'a' : 1 , 'a' : 2'b'3# 무엇이 문제일까?
D2 # key가 될 수 있는 data type은 int, float, str, tuple 이 있다.

 

TIP 사전을 만들 때 key는 중복이 있으면 절대 안된다.

사전에서 key가 될 수 있는 data type은 immutable이어야 한다.

 

사전의 모든 key값들 보기 keys()

D = {'name''kim''phone''01012345679''birth''1234'}
D.keys()

사전의 모든 value들 보기 values()

D.values()

사전의 모든 key, value 쌍 보기 items()

D.items()

사전의 원소 가져오기 get()

# D['name']과 같다.
D["name"] , D.get("name")

사전에 해당 key값이 존재하는지 확인하기 in

  • in이라는 operator는 사전뿐만 아니라 모든 연속형 데이터 타입에 사용할 수 있다.
  • 사전의 경우에는 key값을 대상으로 하고, 리스트, 튜플, 집합, 문자열에 대해서는 해당 원소가 좆재하는지 찾아서 True / False 를 알려준다.
"phone" in D
 
"major" in D
"name" in D
#리스트, 튜플, 집합에서도 테스트
L = [1,2,3]
t = (1,2,3)
s = {1,2,3}

print (2 in L)
print (2 in t)
print (2 in s)

복사했습니다!