7-1. 딕셔너리 자료형

박성혜·2023년 3월 24일
0

[Python] 1. 왕초보

목록 보기
13/20
post-thumbnail

구글 코랩이나 주피터 노트북에서 직접 작성하며 풀어보세요.


딕셔너리는 리스트, 튜플처럼 데이터를 보관하는 자료형이다.

  • 리스트 : 대괄호
  • 튜플 : 소괄호
  • 딕셔너리 : 중괄호

리스트나 튜플은 보관된 데이터끼리의 관계를 알 수 없지만,
딕셔너리는 데이터의 대응 관계를 표현한다.
{key : value} 의 형태로.

a = {"이름" : "홍길동", "성별" : "남자", "나이" : 30}
print(a)

{"이름" : "홍길동", "성별" : "남자", "나이" : 30}

보기 쉽게 표로 나타내보자.

keyvalue
이름홍길동
성별남자
나이30

key 값 : 이름, 성별, 나이
value 값 : 홍길동, 남자, 30

  1. 딕셔너리는 무조건 key 값 기준으로 판단하고 수행한다.
  2. 딕셔너리는 집합 형태라서 순서가 없다.
  3. key 값으로 리스트를 쓸 수 없다.
  4. key 값으로 튜플을 쓸 수 있다.
  5. key 값은 중복할 수 없다. 중복될 경우 가장 마지막에 나온 key값만 인식한다.

5번 예시)

a = {"이름" : "홍길동", "이름" : "최현준"}
print(a)

{"이름" : "최현준"}

1. 딕셔너리에 값 추가하기

변수[추가할 key값] = [추가할 value값] 의 형태로 추가할 수 있다.

예시)

a = {"이름" : "홍길동", "성별" : "남자", "나이" : 30}
a['사는 곳'] = '수원'
print(a)

{"이름" : "홍길동", "성별" : "남자", "나이" : 30, '사는 곳' : '수원'}

리스트에서 값을 수정할 때와 형태가 비슷해서 헷갈릴 수 있다.

a = [6, 7, 8]
a[2] = 4 

[6, 7, 4]

딕셔너리에서는 값을 수정하는 게 아니라 추가하는 형태다.

2. value값 변경하기

변수[변경할 value값의 key값] = [변경할 value값] 의 형태로 추가할 수 있다.

a = {"이름" : "홍길동", "성별" : "남자", "나이" : 30}
a['이름'] = '최현준'
print(a)

{"이름" : "최현준", "성별" : "남자", "나이" : 30}

3. 딕셔너리에 특정 값이 있는지 확인하기

a = {"이름" : "홍길동", "성별" : "남자", "나이" : 30}
print("이름" in a)
print("홍길동" in a)

True
False

딕셔너리는 무조건 key값 기준으로 판단하고 수행하기 때문에, '홍길동'이라는 값은 해당 딕셔너리에 없다고 판단해서 false라는 결과가 나왔다.

4. 딕셔너리 인덱싱

문자열과 리스트처럼 특정 값에 접근할 수 있다.
다른 점은 딕셔너리에는 순서가 없기 때문에
문자열이나 리스트처럼 0번째에 접근하겠다는 식으로 인덱싱할 수는 없다.

[key값]을 작성하면 해당 key값에 대응하는 value값이 결과로 나온다.

a = {"이름" : "홍길동", "성별" : "남자", "나이" : 30}
print(a['이름'])

홍길동

key값'이름'에 대응하는 value값 '홍길동'이 결과로 나왔다.

딕셔너리는 무조건 key값 기준으로 판단하고 수행하기 때문에, value값으로 인덱싱할 수는 없다.

5. del로 특정 값 삭제하기

리스트처럼 파이썬 내장 함수인 del함수로 특정 값을 삭제할 수 있다.
딕셔너리는 무조건 key값 기준으로 판단하고 수행하기 때문에,
del함수에 key값만 넣어도 해당하는 value값도 같이 삭제된다.

a = {"이름" : "홍길동", "성별" : "남자", "나이" : 30}
del a['나이']
print(a)

{"이름" : "홍길동", "성별" : "남자"}

6. 딕셔너리 전용 함수

keys 함수

전체 key값을 확인할 때 사용한다.

a = {"이름" : "홍길동", "성별" : "남자", "나이" : 30}
print(a.keys())

dict_keys(['이름', '성별', '나이'])

결과값이 깔끔하게 나오게 하려면 list함수를 사용하면 된다.

a = {"이름" : "홍길동", "성별" : "남자", "나이" : 30}
print(list(a.keys()))

['이름', '성별', '나이']

values 함수

전체 values값을 확인할 때 사용한다.

a = {"이름" : "홍길동", "성별" : "남자", "나이" : 30}
print(a.values())

dict_values(['홍길동', '남자', 30])

결과값이 깔끔하게 나오게 하려면 list함수를 사용하면 된다.

a = {"이름" : "홍길동", "성별" : "남자", "나이" : 30}
print(list(a.values()))

['홍길동', '남자', 30]

여기까지 딕셔너리 자료형이었습니다.

수정이 필요한 부분이나 이해가 안 가는 부분이 있다면 언제든 말씀해주세요!^0^

다음 시간에는 딕셔너리 자료형 실습 문제를 풀어볼게요.

그럼 이만
총총

profile
인공지능이 인공지능을 개발하면 인공지능일까

0개의 댓글

관련 채용 정보