python

python 기초(딕셔너리)

class="song" 2023. 11. 11.
728x90

딕셔너리는 말 그대로 사전이라는 의미를 가지고 있다.

 

key와 value를 가지고 있는 property의 형태이다.

 

리스트와 다른점은 리스트의 경우 값만을 가지고 있어 리스트 안의 데이터를 사용할 때,

리스트 안의 데이터의 순서를 알고 있어야 특정 데이터를 바로 사용할 수 있었는데

 

딕셔너리의 경우 key를 자신이 작성하여 더욱 쉽게 데이터를 사용할 수 있다.

 

변수명 = { 'key' : value }의 형태로 할당할 수 있다.

 

key는 중복해서 사용할 수 없다.

 

사용방법

dic = { 'name' : 'merry' , 'age' : 27 }
print(dic)

결과 : { 'name' : 'merry' , 'age' : 27 }

위와 같이 할당하고 사용할 수 있다.

 

리스트와 같이 여러 가지 형태의 데이터를 함께 담을 수 있다.

 

 

key로 리스트는 사용할 수없지만 value는 list로 사용이 가능하다.

# 사용 가능
{ 'name' : ['merry' , 'john' , 'tom' }

# 사용 불가
{ [ 'name' , 'age' ] : [ 'merry' , 27 ] }

 

새로운 데이터를 할당해 줄 때

dic = {
    'name' : 'merry',
    'age' : 27,
    'hp' : '010-5221-8476'
}

dic['num'] = [1, 2, 3, 4]

print(dic)

결과 : {'name' : 'merry', 'age' : 27, 'hp' : '010-5221-8476', 'num' : [ 1, 2, 3, 4 ]

위와 같이 dic[키]  = value의 형태로 데이터를 추가해 줄 수 있다.

위에 설명과 같이 key에는 list를 사용할 수 없고, value에는 list를 사용할 수 있다.

 

 

딕셔너리 안의 특정 데이터를 수정하고 싶을 때는 key와 인덱스를 사용하여 데이터를 수정할 수 있다.

# num의 value 수정
dic = {
    'name' : ['merry', 'john'],
    'num' :[1,2,3,4],
    'birth' : ['jan' , 'feb' , 'nov']
    }
    
dic['num'] = [1,2,3,5]

print(dic)

결과 : { 'name' : ['merry', 'john'], 'num' :[1,2,3,5], 'birth' : ['jan' , 'feb' , 'nov'] }

# num의 value 삭제
dic = {
    'name' : ['merry', 'john'],
    'num' :[1,2,3,4],
    'birth' : ['jan' , 'feb' , 'nov']
    }
    
del(dic['num'][-1])

print(dic)

결과 : { 'name' : ['merry', 'john'], 'num' :[1,2,3], 'birth' : ['jan' , 'feb' , 'nov'] }

위와 같이 수정과 삭제를 실행할 수 있다.

 

 

딕셔너리에 사용할 수 있는 함수는 다음과 같이 있다.

# 딕셔너리 함수
- keys() : 키들을 반환
- values() : 값들을 반환
- items() : 키와 값을 튜플로 반환
- get('원하는 키값') : 키값에 대응하는 값을 반환
- zip : 튜플/리스트 두개를 하나의 딕셔너리를 변환

 

keys()

dic = { 'name' : 'merry' , 'age' : 12 , 'brith' : 'nov' }
dic.keys()

결과 : dict_keys([ 'name' , 'age' , 'birth' ])

# 타입 확인
print( type(dic.keys()) )

결과 : dict_keys

위와 같이 변수에 .을 찍어서 사용할 수 있다.

 

타입은 dict_keys 타입으로 나오는 걸 확인할 수 있다.

 

value()는 keys()와 같이 사용하도록 하자

 

 

get()

dic = { 'name' : [ 'merry', 'john' ] , 'age' : 12 , 'brith' : 'nov' }
# 키로 value 추출하기
dic.get(name) , dic['name']

결과 : ([ 'merry', 'john' ] , [ 'merry', 'john' ])

type(dic.get('name'))

결과 : list

위와 같이 dic.get('key') 또는 dic['key']의 형태로 사용할 수 있다.

타입은 list로 나타난다.

 

 

zip()

keys = ('a', 'b')
values = (1,2)

dict(zip(keys,values))

result = dict(zip(keys,values))
print(result)

결과 : {'a' : 1 , 'b' : 2}

zip의 경우에는 튜플이나 리스트를 딕셔너리로 변환시켜 준다.

 

객체와 리스트는 많이 사용되는 데이터 형태이므로 잘 숙지하도록 하자.

728x90

'python' 카테고리의 다른 글

python 기초(튜플)  (2) 2023.11.15
python 기초(제어문 - if문)  (2) 2023.11.14
python 기초(데이터 구조)  (0) 2023.11.09
Python 기초(변수)  (1) 2023.11.08
Python 기초 (문자열)  (1) 2023.11.08

댓글