ML&DL&AI/Python

Python 딕셔너리(dictionary)

Hoon0211 2023. 6. 13. 15:50
728x90

1. 딕셔너리(dictionary)

  • dictionary는 단어 그대로 해석하면 사전이라는 뜻
  • "people"이라는 단어는 "사람", "baseball"이라는 단어는 "야구"에 부합되듯이 dictionary는 Key와 Value를 한쌍으로 갖는 자료형
  • 딕셔너리 타입은 immutable한 key와 mutable한 value로 맵핑(짝꿍)되어 있는 순서가 없는 집합
  • 4명의 사람이 있고 각각의 특기를 표현하기 위해서 리스트나 문자열로 표현하기 어려움 > 딕셔너리 사용
딕셔너리명 = {key : Value, key : Value, ...}

Key에는 변하지 않는 값을 사용하고, Value에는 변하는 값과 변하지 않는 값 모두 사용할 수 있다.

a = {}
b = {"name":"CH"}
c = {1:5, 2:3}
  • 딕셔너리 선언 및 타입 확인
dic = {'name':'SS','age':31, 'phone':'010-1234-1234'}
print(dic)
type(dic)
  • 딕셔너리 사용 주의 사항

없는 키 값에 접근하면 되면 에러 발생

  •  
dic1['borth']

 

  • get() 이용

없는 키에 접근해도 에러가 발생하지 않는다.

dic.get('name')
dic.get('broth') # 아무일도 일어나지 않는다.

 

  • key 값이 중복되는 상황

나중에 선언된 쌍만 남겨두게 된다.

dic_name = {'name' : 'AAA',
            'name' : 'BBB'}
dic_name # BBB

 

  •  key 값으로 리스트를 사용
    • 오류가 발생을 한다.
  • key 값으로 튜플 사용
    •  튜플은 변하지 않기 때문에 key로 사용 할 수 있다.
# dic_list = {[1,2,3]:"hi"} 오류발생
dic_tuple = {(1,2,3):"hi"}

 

  • 딕셔너리 추가
dic['birth'] = '02.11'

 

2. 딕셔너리 관련 함수

  • 키 값을 확인하기
dic.keys()
dict_keys(['name', 'age', 'phone', 'birth'])
  • 밸류 값을 확인하기
dic.values()
dict_values(['SH', 31, '010-1234-1234', '02.11'])
  • tems( ) : 키, 벨류 값을 출력하는 함수
dic.items()
dict_items([('name', 'SH'), ('age', 31), ('phone', '010-1234-1234'), ('birth', '02.11')])

 

- 예제

score_dict = {'이름': ['AAA','BBB','CCC'],
              'Python': [90,100,85],
              'Java' : [100,80,90],
              'html/css' : [85,75,95]}
{'이름': ['AAA', 'BBB', 'CCC'],
 'Python': [90, 100, 85],
 'Java': [100, 80, 90],
 'html/css': [85, 75, 95]}

Python 평균값 구하기

  • sum() : 총합을 구하는 함수
  • len() : 길이를 구하는 함수
  • round() : 소수점에서 반올림을 해주는 함수
py_avg = sum(score_dict.get('Python'))/len(score_dict.get('Python'))
print(round(py_avg,2))
91.67

 

3. 딕셔너리 값 삭제

  • del 키워드
  • del 딕셔너리변수명[키값]
del dic['age']
dic

 

{'name': 'SH', 'phone': '010-1234-1234', 'birth': '02.11'}

 

  • clear()함수
  • Key:velue 쌍 모두 지우기
  • 딕셔너리명.clear()
dic.clear()
dic
{}

 

728x90