• 회원가입
  • 로그인
  • 구글아이디로 로그인

[basic] Python - Dictionary (딕셔너리) - Key:value 쌍으로 구성된 모음

3563  

목차

  1. Dictionary 정의
  2. Dictionary 요소 접근
  3. Dictionary Value 변경
  4. Dictionary 반복/출력
  5. Dictionary Key 존재 체크
  6. Dictionary 요소 개수 (= 길이)
  7. Dictionary 요소 추가
  8. Dictionary 요소 제거
  9. Dictionary 복사
  10. 안긴 Dictionary
  11. dict() 생성자
  12. Dictionary 메서드 종류

 

Dictionary 정의

 

순서 X, 색인 O, 변경 O, 추가 O, 제거 O, 키 중복 X, 중괄호 {} 이용하는, {key:value, ...} 형태의 자료 모음.

 

※ 주의

중복 key 불가. 참고.  

단, 중복 value 가능.

 


[예제]

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

print(hz)

 

결과값: {'site': '홈짱닷컴', 'host': 'Homzzang.com', 'open': 2012}

 

Dictionary 요소 접근

1. [key] 이용해 접근.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

x = hz['site']

print(x) # 홈짱닷컴

 


2. get() 메서드 이용해 접근.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

x = hz.get('site')

print(x) # 홈짱닷컴

 

 

Dictionary Value 변경

※ key 이용해 변경.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

hz['open'] = 2020

print(hz)

 

반환값: {'site': '홈짱닷컴', 'host': 'Homzzang.com', 'open': 2020}

 

Dictionary 반복/출력

1. for...in... 반복문 이용해 Key 출력.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

for x in hz:

  print(x)

 

반환값:

site

host

open


2. for...in... 반복문 이용해 value 출력.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

for x in hz:

  print(hz[x])

 

결과값:

홈짱닷컴

Homzzang.com

2012


3. values() 메서드 이용해 value 출력. 

(※ 주의: values 복수형임.)

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

for x in hz.values():

  print(x)

 

결과값:

홈짱닷컴

Homzzang.com

2012


4. items() 메서드 사용해 key와 value 모두 출력.

(※ 주의: items 복수형임.)

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

for x,y in hz.items():

  print(x, y)

 

반환값:

site 홈짱닷컴

host Homzzang.com

open 2012

 

Dictionary Key 존재 체크

in 키워드 사용해 key 존재 여부 체크.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

if "site" in hz:

  print("있음.")

 

결과값: 있음.


PS. in 키워드와 values() 메서드 결합해 value 존재 체크 가능.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

if "홈짱닷컴" in hz.values():

  print("있음.")

 

결과값: 있음.

 

Dictionary 요소 개수 (= 길이)

len() 함수 사용해 Item 개수 셈.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

print(len(hz))

 

결과값: 3

 

Dictionary 요소 추가

[방법1]

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

hz["intro"] = "코딩 강의"

print(hz)

 

결과값: 

{'site': '홈짱닷컴', 'host': 'Homzzang.com', 'open': 2012, 'intro': '코딩 강의'}


[방법2] dictionary.setdefault() 메서드 이용 ★

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

hz.setdefault('intro','코딩 강의')

print(hz)

 

결과값: 

{'site': '홈짱닷컴', 'host': 'Homzzang.com', 'open': 2012, 'intro': '코딩 강의'} 

 

Dictionary 요소 제거

1. pop() 메서드 - 지정 key를 가진 Item 제거.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

hz.pop('open')

print(hz)

 

결과값: {'site': '홈짱닷컴', 'host': 'Homzzang.com'}


2. popitem() 메서드 - 마지막으로 삽입된 Item 제거.

cf. Python 3.7 이전 버전 경우, 랜덤으로 Item 제거.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

hz.popitem()

print(hz)

 

결과값: {'site': '홈짱닷컴', 'host': 'Homzzang.com'}


3. del 키워드로 지정 key를 가진 Item 제거.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

del hz['open']

print(hz)


결과값: {'site': '홈짱닷컴', 'host': 'Homzzang.com'}


4. del 키워드로 Dictionary 자체를 제거 가능.


hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

del hz # 에러 유발.

print(hz)


결과값: 에러 발생.


5. clear() 메서드로 모든 Item 제거 가능. (= Dictionary 비우기)

※ 주의: Dictionary 자체는 존재함.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

hz.clear()

print(hz)


결과값: {}

 

Dictionary 복사

 

주의: dict1 = dict2 방식으로는 복사 불가함.

∵ dict1은 dict2에 대한 참조일 뿐이며, dict2 변하면 dict1도 변함.

 


1. copy() 메서드로 복사.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

my = hz.copy()

print(my)

 

결과값: 

{'site': '홈짱닷컴', 'host': 'Homzzang.com', 'open': 2012}


2. dict() 내장 함수로 복사.

 

hz ={

  "site": "홈짱닷컴",

  "host": "Homzzang.com",

  "open": 2012

}

my = dict(hz)

print(my)

 

결과값: 

{'site': '홈짱닷컴', 'host': 'Homzzang.com', 'open': 2012} 

 

안긴 Dictionary

1. Dictionary 안에 Dictionary를 직접 정의.

 

code = {

  "HTML" : {

    "role" : "뼈대",

    "read" : 1

  },

  "CSS" : {

    "role" : "디자인",

    "read" : 2

  },

  "JS" : {

    "role" : "기능",

    "read" : 3

  }

}

print(code)

 

결과값: 

{'HTML': {'role': '뼈대', 'read': 1}, 'CSS': {'role': '디자인', 'read': 2}, 'JS': {'role': '기능', 'read': 3}}


2. 기존 Dictionary를 Item으로 갖는 Dictionary 생성.

 

HTML = {

  "role" : "뼈대",

  "read" : 1

}

CSS = {

  "role" : "디자인",

  "read" : 2

}

JS = {

  "role" : "기능",

  "read" : 3

}


code = {

  "HTML" : HTML,

  "CSS" : CSS,

  "JS" : JS

}

print(code)

 

결과값:

{'HTML': {'role': '뼈대', 'read': 1}, 'CSS': {'role': '디자인', 'read': 2}, 'JS': {'role': '기능', 'read': 3}}

 

dict() 생성자

dict() 생성자 사용해 Dictionary 생성 가능.

주의1: Key는 문자열이 아님. 즉, 따옴표 안 붙임.

주의2: Key에 Value 할당은 = 기호 사용. (즉, : 기호 아님 명심.)

 

hz = dict(site="홈짱닷컴", host="Homzzang.com", open=2012)

print(hz)

 

결과값:

{'site': '홈짱닷컴', 'host': 'Homzzang.com', 'open': 2012}

 

Dictionary 메서드 종류

 

 

PS1. dictionary 부분엔 Dictionary 자료형 변수 입력.

PS2. dict.fromkeys() 경우엔 반드시 dict 입력해야 함.



분류 제목
basic Python - Home (입문) - 이념 / 추천 링크
basic Python - Intro (소개) - 용도・특징
basic Python - Start (시작) - 파이썬 설치/실행/버전확인
basic Python - Syntax (구문) - 들여쓰기・변수・주석
basic Python - Comment (주석)
basic Python - Variable (변수)
basic Python - DataType (데이터타입) - 자료형
basic Python - Number (숫자)
basic Python - Casting (데이터 타입 변경) - 자료형 변환
basic Python - String (문자열) ★ ※ 색인번호 (= 인덱스) 개념.
basic Python - Boolean (참거짓)
basic Python - Operator (연산자)
basic Python - List (리스트) ★ - 변경 가능한 모음
basic Python - Tuple (투플/튜플) - 변경 불가 모음
basic Python - Set (셋/세트) - '순서(=색인)' 없고, 중복 허용 않는 데이터 모음.
basic Python - Dictionary (딕셔너리) - Key:value 쌍으로 구성된 모음
basic Python - if...elif...else - (이프조건문) ※ 3항연산자 = 삼항연산자
basic Python - While (와일반복문) - 와일문
basic Python - For (포반복문) ★★★★★
basic Python - Function (함수)
1/24
목록
찾아주셔서 감사합니다. Since 2012