❓ 딕셔너리(dictionary)란
- 특정 주제에 대해 연관된 값을 저장하는 방식
{}
중괄호 안에 키:값
형식으로 저장하며 각 키와 값은 ,(콤마)
로 구분딕셔너리={키1:값1, 키2:값2}
┌
>>> lux = {'health': 575.6, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
#실행결과
>>> lux
{'health': 575.6, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
└
┌
>>> fruits = {'apple':1, 'banana':2, 'pear':1, 'apple':2}
#실행결과
>>> fruits
{'apple': 2, 'banana': 2, 'pair': 1}
# 키의 순서는 변함 없지만 값은 제일 뒤에 위치한 값이 옴.
└
┌
>>> x = {100: 'hundred', False: 0, 3.5: [3.5, 3.5]}
#실행결과
>>> x
{100: 'hundred', False: 0, 3.5: [3.5, 3.5]}
└
딕셔너리 = {}
딕셔리 = dict()
딕셔너리 = {}
를 주로 사용┌
x = {}
y = dict()
print(x)
print(y)
#실행결과
{}
{}
└
┌
>>> lux1 = dict(health=490, mana=334, melee=550, armor=18.72)
#실행결과
>>> lux1
{'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
└
┌
lux2 = dict(zip(['health', 'mana', 'melee', 'armor'], [490, 334, 550, 18.72]))
#실행결과
>>> lux2
{'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
└
┌
>>> lux3 = dict([('health', 490), ('mana', 334), ('melee', 550), ('armor', 18.72)])
# 리스트 안에 튜플 [()]
#실행결과
>>> lux3
{'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
└
{}중괄호
사용┌
>>> lux4 = dict({'health': 490, 'mana':334, 'melee':550, 'armor': 18.72})
#실행결과
>>> lux4
{'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72}
└
딕셔너리[키]
로 접근┌
>>> lux = {'health': 575.6, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
#실행결과
>>> lux['health']
575.6
└
┌
>>> lux = {'health': 575.6, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
#실행결과
>>> lux
{'health': 575.6, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
└
딕셔너리[키] = 값
┌
>>> lux = {'health': 575.6, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
>>> lux['health'] = 300
#실행결과
>>> lux
{'health': 300, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
# health의 값이 575.6에서 300으로 바뀜
└
┌
>>> lux = {'health': 300, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
>>> lux['apple'] = 200
#실행결과
>>> lux
{'health': 300, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63, 'apple': 200}
# apple: 200이 추가되었다.
└
키 in 딕셔너리
┌
>>> lux = {'health': 575.6, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
#실행결과
>>> 'health' in lux
True
>>> 'speed' in lux
False
└
키 not in 딕셔너리
┌
>>> lux = {'health': 575.6, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
#실행결과
>>> 'speed' not in lux
True
>>> 'health' not in lux
False
└
len(딕셔너리)
┌
>>> lux = {'health': 575.6, 'health_regen': 1.7, 'mana': 338.8, 'mana_regen': 1.63}
#실행결과
>>> len(lux)
4
└
📌 참고
bts = {
"RM": {
"실명": "김남준",
"가명": "RM",
"생년월일": "1994년 9월 12일",
"출생지": "대한민국 서울특별시 동작구 상도동",
"학력": "글로벌사이버대학교 방송연예학과",
"포지션": "리더 · 메인 래퍼"
},
"진": {
"실명": "김석진",
"가명": "진",
"생년월일": "1992년 12월 4일",
"출생지": "대한민국 경기도 과천시",
"학력": "한양사이버대학교 대학원",
"포지션": "서브 보컬"
},
"슈가": {
"실명": "민윤기",
"가명": "슈가",
"생년월일": "1993년 3월 9일",
"출생지": "대한민국 대구광역시 북구 태전동",
"학력": "글로벌사이버대학교 방송연예학과",
"포지션": "리드 래퍼"
},
"제이홉": {
"실명": "정호석",
"가명": "제이홉",
"생년월일": "1994년 2월 18일",
"출생지": "대한민국 광주광역시 북구 일곡동",
"학력": "글로벌사이버대학교 방송연예학과",
"포지션": "서브 래퍼 · 메인 댄서"
},
"지민": {
"실명": "박지민",
"가명": "지민",
"생년월일": "1995년 10월 13일",
"출생지": "대한민국 부산광역시 금정구 금사동",
"학력": "글로벌사이버대학교 방송연예학과",
"포지션": "리드 보컬 · 메인 댄서"
},
"뷔": {
"실명": "김태형",
"가명": "뷔",
"생년월일": "1995년 12월 30일",
"출생지": "대한민국 대구광역시 서구 비산동",
"학력": "글로벌사이버대학교 방송연예학과",
"포지션": "서브 보컬"
},
"정국": {
"실명": "전정국",
"가명": "정국",
"생년월일": "1997년 9월 1일",
"출생지": "대한민국 부산광역시 북구 만덕동",
"학력": "글로벌사이버대학교 방송연예학과",
"포지션": "메인 보컬 · 서브 래퍼 · 리드 댄서"
}
}
print(bts["제이홉"]["생년월일"])
print(bts["뷔"])
#결과
(base) ~/python master ±✚ /usr/bin/python3 /home/hwang/python/test.py
1994년 2월 18일
{'실명': '김태형', '가명': '뷔', '생년월일': '1995년 12월 30일', '출생지': '대한민국 대구광역시 서구 비산동', '학력': '글로벌사이버대학교 방송연예학과', '포지션': '서브 보컬'}
Dictionary와 마찬가지로 Set 또한 중괄호{}
를 사용 하지만 Set의 경우 key : value
형식이 아닌 list와 같이 다양한 타입의 요소를 저장한다. {1, 2, 3}
Set의 경우 List와 같이 요소의 형식은 같지만 ordering이 없어
for문에서 읽어들이면 요소가 무작위로 나온다.
Set은 list와 달리 ordering이 없기 때문에 몇번째 요소를 읽어 들일 수 없다.
dict와 set은 중복이 불가해 dict의 경우 key
값이 마지막 요소로 치환(replace)되고 set의 요소 또한 마지막 값으로 치환된다.
dict는 요소의 추가, 삭제를 키값으로 부여하고, Set은 내장함수를 이용한다.
# dict 요소 추가 예시
my_dict = {"one": 1, "two": 2}
my_dict["three"] = 3
del my_dict["two"] # key값 사용
print(my_dict)
>{"one": 1, "three": 3}
======================================================
# Set 요소 추가 예시
my_set = {1, 2, 3}
my_set.add(4)
my_set.remove(3)
print(my_set)
> {1, 2, 4}