Chapter 12. 딕셔너리(Dictionary)

딕셔너리의 표현

딕셔너리는 { ... } 으로 감싸서 표현하고

key(키) : value(값)

안은 이렇게 생겼다.

- key

  • 리스트는 키가 될 수 없다.
  • 중복될 수 없다.

- value

  • 중복되도 상관없다.
  • 아무거나 와도 상관없다.
dc = {
    '코카콜라' : 900,
    '바나나맛우유' : 750,
}

dc = {
    '코카콜라' : (900, '탄산음료'),
    '바나나맛우유' : (750, '유제품'),
}

dc = {
    '이름' : '홍길동',
    '나이' : 20,
    '직업' : '학생'
}

데이터 참조, 수정, 추가, 삭제

- 참조

dc = {
    '이름' : '홍길동',
    '나이' : 20,
    '직업' : '학생'
}

v=dc['이름']
print(v)

인덱스 대신 키 값을 넣고 그 키가 열쇠가 되어 그에 해당하는 값을 꺼내온다.

- 수정

만약에 나이를 수정하고 싶다면!

dc = {
    '이름' : '홍길동',
    '나이' : 20,
    '직업' : '학생'
}

dc['나이'] = 21
print(dc['나이'])


이렇게 수정된 모습을 볼 수 있다.

- 추가

데이터를 추가하고싶다면
음.. 생일을 추가한다고 해보자!

dc = {
    '이름' : '홍길동',
    '나이' : 20,
    '직업' : '학생'
}

dc['생일']='2020.02.02'
print(dc)


이렇게 맨 마지막에 추가가 되는 모습을 볼 수 있다.

- 삭제

정보를 지우고 싶다!
그러면

dc = {
    '이름' : '홍길동',
    '나이' : 20,
    '직업' : '학생'
}

del dc['직업']
print(dc)


이렇게 바뀐 모습을 볼 수 있다.

딕셔너리에서의 '=='

dc1={
    '첫번째' : 1,
    '두번째' : 2
}

dc2={
    '두번째' : 2,
    '첫번째' : 1
}

print(dc1==dc2)

여기서 출력결과는 False가 나올까요 True가 나올까요?

정답은 True입니다!

여기서 저장 내용은 같지만 저장 순서는 틀리니까 False라고 생각할 수도 있지만,
여기서 알 수 있듯이 딕셔너리의데이터는 저장 순서가 의미가 없기 때문에 True가 나온 것 입니다.
따라서 저장순서가 중요한 데이터라면 딕셔너리보단 다른 것을 이용하여 담아야 됩니다.

in 연산, not in 연산

in 연산과 not in 연산은 딕셔너리에 특정 키가 존재하는지 확인하기 위해 쓰는 것이다.

dc1 = {
    '새우깡' : 1500,
    '바나나킥' : 1500
}

dc2 = {
    '바나나우유' : 1500,
    '검은콩우유' : 1500
}

if '바나나우유' in dc2 :
    dc2['바나나우유'] = 1300
elif '바나나우유' not in dc2 : 
    dc2['바나나우유'] = 1300

이렇게 하면 정확하게 정보 수정을 할 수 있다.

for 루프

딕셔너리도 for 루프를 돌릴 수 있는데

dc1 = {
    '새우깡' : 1500,
    '바나나킥' : 1500,
    '곰표나초' : 2500
}

for i in dc1 :
    dc1[i]+=500
print(dc1)

이렇게 for 문의 i에는 dc1 안에 있는 key값이 저장된다!
즉 딕셔너리의 key를 중심으로 for 루프가 돌아간다는 것을 볼 수 있다.

좋은 웹페이지 즐겨찾기