TOP
class="layout-aside-left paging-number">
본문 바로가기
[파이썬 Projects]/<파이썬 기초>

[파이썬] 파이썬기초: 자료형 - 딕셔너리 자료형

by 기록자_Recordian 2024. 6. 15.
728x90
반응형
시작에 앞서
해당 내용은 '<Do it! 점프 투 파이썬> 박응용 지음. 이지스 퍼블리싱' 을 토대로 작성되었습니다. 보다 자세한 내용은 해당 서적에 상세히 나와있으니 서적을 참고해 주시기 바랍니다.

 자료형

 

자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 뜻한다.

 

[자료형의 종류]


딕셔너리 자료형

 

딕셔너리: Key와 Value를 한 쌍으로 갖는 자료형. Key를 통해 Value를 얻는 특징이 있다.

Key와 Value 가 { } 로 둘러싸여 있고, 각각의 요소는 쉼표(,) 로 구분되어 있다.

기본형태 - {Key1:Value1, Key2:Value2, Key3: Value3, ...}

 

 

이를테면,

dic = {'name':'John', 'tel':'021231234', 'birth':'0101'}

이라는 딕셔너리가 있다면, Key와 Value는 각각 아래와 같다.

Key Value
name John
tel 021231234
birth 0101

 

[딕셔너리의 사용 예]

dic = {"name":"pey", "phone": "010-1234-5678", "birth": "2001-01-01"}
dic_a = {1: "hi"}
dic_b = {'a':[1, 2, 3]}
print(dic)
print(dic_a)
print(dic_b)

dic_a[2] = "hello" # 딕셔너리에 요소 추가하기
print(dic_a)

dic_b['e'] = ['a', 'b', 'c']
print(dic_b)

※ 딕셔너리의 Value에는 리스트도 넣을 수 있다.


딕셔너리 쌍 추가, 삭제하기

 

딕셔너리를 삭제할 때에는 del 함수를 사용하여

del a[key] 형태로 입력하면 지정한 Key에 해당하는 {Key:Value} 한 쌍이 삭제된다.


딕셔너리를 사용하는 방법

 

◆ 딕셔너리에서 Key 사용해 Value 얻기

딕셔너리는 변수명[Key]로 입력하여 Key에 해당하는 Value를 얻는다.

 

◆  딕셔너리 만들 때 주의 사항

- key는 중복 허용 안됨, value는 중복 가능

- 딕셔너리에서 Key는 고유한 값이므로 중복되는 Key 값을 설정해 놓으면 하나를 제외한 나머지 것들이 모두 무시된다.

(동일한 Key가 존재하면 어떤 Key에 해당하는 Value를 불러야 할지 알 수 없기 때문)

 

- 리스트는 딕셔너리의 Key 값으로 사용할 수 없다. (그러나 튜플은 사용할 수 있다.)

★ 예제

학생과 성적 딕셔너리를 통해 답을 출력하는 코드 작성

student = {
    "김하나" : [90, 95, 80],
    "이두리" : [90, 75, 85],
    "홍길동" : [85, 75, 95],
    "박연희" : [95, 80, 100]
}

# 홍길동의 성적 출력
print("홍길동 성적:", student["홍길동"])

# 박연희의 총점 출력
print("박연희 총점:", sum(student["박연희"]))
    
# 이두리의 평균 출력
print("이두리 평균:", round(sum(student["이두리"])/len(student["이두리"]),1))

 


딕셔너리 관련 함수

 

◆  keys: Key 리스트 만들기

a.keys() 는 딕셔너리 a의 Key 만을 모아서 dict_keys 객체를 돌려준다.

다만, 리스트 고유의 append, insert, pop, remove, sort 함수는 수행할 수 없다.

◆  Values:  Value 리스트 만들기

Value만 얻고 싶다면 values 함수를 호출하면 dict_values 객체를 돌려준다.

 

◆  items: Key, Value 쌍 얻기

items 함수는 Key와 Value 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다.

scores = {"수학": 0, "영어": 50, "코딩": 100}
for subject, score in scores.items():
  print(subject, score)

 

만약, 출력되는 값을 정렬하고 싶은 경우에는

print(subject.ljust(8), str(score).rjust(4), sep=":")
# ljust(8): 8칸의 공간 확보한 상태에서 왼쪽으로 정렬
# rjust(4): 4칸의 공간 확보한 상태에서 오른쪽으로 정렬
# sep="기호": 해당 기호로 구분

 

◆ clear: Key:Value 쌍 모두 지우기

clear 함수는 딕셔너리 안의 모든 요소를 삭제한다. 빈 딕셔너리는 { } 로 표현한다.

 

◆ get: Key로 Value 얻기

get(x) 함수는 x라는 Key에 대응되는 Value를 돌려준다.

딕셔너리 안에 Key 값이 없을 경우 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때에는 get(x, '디폴트 값')을 사용하면 편리하다.

 

◆ in: 해당 Key가 딕셔너리 안에 있는지 조사하기

값을 참(True)과 거짓(Fale)로 반환한다.

 

◆ update:  하나의 딕셔너리를 다른 딕셔너리와 합치기

d1 = {'a': 'some value', 'b' : [1, 2, 3, 4], 7 : 'an integer'}
print(d1)

d1.update({"b": "foo", "c": 12})
print(d1)


딕셔너리 + for 반복문

 

[문법]

dict = {key1: value1, ...}

for key in dict:
  print(key)
  print(딕셔너리[key]) # value 불러오기

 

book_dict = {
    "입문자용": "혼자 공부하는 첫 프로그래밍",
    "초보자용" : "혼자 공부하는 파이썬",
    }

for book in book_dict:
  print(book) # key 불러오기
  print(book_dict[book]) # value 불러오기

 

# 요구르트 2020년 1분기 판매량

yo_qty_2020 = {
    "2020년 1월" : [15, 16, 20, 29],
    "2020년 2월" : [8, 11, 25, 21],
    "2020년 3월" : [17, 9, 17, 24]
    }

total_qty = 0

for month in yo_qty_2020:
  qty = sum(yo_qty_2020[month])
  print(f"{month}의 판매량은 {qty}개 입니다.")
  total_qty += qty

print(f"2020년 1분기 총 판매량은 {total_qty}개 입니다.")

 

[딕셔너리 보완]

 

[파이썬] 파이썬 기초 - 딕셔너리 보완

딕셔너리 이전 내용 [파이썬] 파이썬기초: 자료형 - 딕셔너리 자료형시작에 앞서해당 내용은 ' 박응용 지음. 이지스 퍼블리싱' 을 토대로 작성되었습니다. 보다 자세한 내용은 해당 서적에 상세

puppy-foot-it.tistory.com

 


다음글

 

[파이썬] 파이썬기초: 자료형 - 집합 자료형

시작에 앞서해당 내용은 ' 박응용 지음. 이지스 퍼블리싱' 을 토대로 작성되었습니다. 보다 자세한 내용은 해당 서적에 상세히 나와있으니 서적을 참고해 주시기 바랍니다. 자료형 자료형이란

puppy-foot-it.tistory.com

 

728x90
반응형