항상 한 쌍으로 저장되어 관리 한다
len() 를 사용하면 한 쌍을 1로 카운트 한다
키 값은 중복이 될 수 없으며 값은 중복이 가능하다
키 값을 주면 그 키의 짝꿍 값을 가지고 온다
dict 선언
dict명 = {키 : 값, 키 : 값, ....}
dict 사용
-추가(키 값이 없을 때)
dict명[키] = 값 //아예 새롭게 추가하는 경우
-수정(키 값이 있을 때)
dict명[키] = 값
-삭제(한 쌍이 삭제 된다)
del dict명[키]
-검색
키 in dict명 : 키 값이 있으면 참
키 not in dict명 : 키 값이 없으면 참
key 분리
list(dict명.keys())
Value 분리
dict명.values()
딕셔너리는 리스트나 튜플처럼 순차적으로(sequential) 해당 요솟값을 구하지 않고 Key를 통해 Value를 얻는다.
이것이 바로 딕셔너리의 가장 큰 특징
list Test 01
#%% list Test 01
t1 =[1,2,3]
t2 =[1,2,3]
t3 =[3,2,1]
print(t1 == t2)
print(t1 == t3) #list가 순서와 값이 모두 같아야 True로 반환된다
True
False
dict Test 02
==연산을 대상으로 관찰하는 딕셔너리 성격
# %% dict Test 02
# ==연산을 대상으로 관찰하는 딕셔너리 성격
d1={1:'a',2:'b'}
d2={1:'a',2:'b'}
d3={2:'b',1:'a'}
print(d1==d2)
print(d1==d3) #딕셔너리는 값의 순서에 상관없다
True
True
dc={
'코카콜라' : 900,
'바나나맛우유':750,
'비타500':600,
'삼다수':450
}
print(dc)
# key 와 value 를 쌍으로 묶는다
key와 value는 어떤 값이든 상관 없다
문자열, 정수, 실수, 튜플 리스트 등등 제한이 없다
딕셔너리에서의 key 값은 중복이 불가능하다
값의 저장 순서가 중요하지 않다
# %%
dc={
'이순둥': 22,
'이순둥': 23,
'이순둥': 24,
}
print(dc)
{'이순둥': 24}
key값의 중복으로 왜곡이 일어나 마지막 값만 출력 된다
딕셔너리에서 Key 사용해 Value 얻기
dc={
'코카콜라' : 900,
'바나나맛우유':750,
'비타500':600,
'삼다수':450
}
v= dc['삼다수']
print(v)
450
인덱싱 연산을 사용해서 value를 얻어 온다
딕셔너리 수정
dc={
'코카콜라' : 900,
'바나나맛우유':750,
'비타500':600,
'삼다수':450
}
dc['삼다수'] = 500
print(dc)
{'코카콜라': 900, '바나나맛우유': 750, '비타500': 600, '삼다수': 500}
딕셔너리와 for 루프
# %% 딕셔너리와 for 루프
dc={'새우깡':700, '콘치즈':850, '꼬깔콘':750}
dc['조리퐁']=650
for i in dc:
print(i, end=' ')
# %% for루프2
dc={'새우깡':700, '콘치즈':850, '꼬깔콘':750}
for i in dc:
dc[i] += 70
print(dc)
새우깡 콘치즈 꼬깔콘 조리퐁
{'새우깡': 770, '콘치즈': 920, '꼬깔콘': 820}
# 딕셔너리에 저장된 값이 순서대로 출력된다는 보장은 없다 순서에 대한 생각은 안하는 게 좋다
dict Test
# dict Test
중국집 = {"자장면" : 1500, "짬뽕":2500}
print(len(중국집))
print(중국집["자장면"]) #딕셔너리의 [키값] => value값이 나옴
2 #key와 value 값이 한 쌍이므로 길이는 2가 나온다
1500 #"자장면"의 value 값이 출력 된다
if "자장면" in 중국집 :
중국집["자장면"] = 4000
print(중국집)
{'자장면': 4000, '짬뽕': 2500}
if "탕수육" not in 중국집 : #탕수육은 중국집dict에 없던 키값이므로 새로 추가 된다
중국집["탕수육"] = 9000
print(중국집)
{'자장면': 4000, '짬뽕': 2500, '탕수육': 9000}
del 중국집["짬뽕"]
print(중국집)
{'자장면': 4000, '탕수육': 9000}
key값을 분리해서 가져오고 싶을 때
for i in 중국집.keys():
print(i)
자장면
짬뽕
탕수육
인덱스 번호로 가져오고 싶을 때
for i in range(len(중국집)):
print(str(i+1) + ". " + list(중국집.keys())[i])
1. 자장면
2. 짬뽕
3. 탕수육
# str(i+1)번의 list(중국집.keys())[i]) 째 메뉴
중국집.keys() 를 분리해서 각각의 [i] 인덱스에 접근하기 위해 list로 형변환
평균 가격 구하기
avg = total / len(중국집)
# print("평균 가격: "+ str(avg)+ "원")
print("평균 가격: %.2f원" %avg)
평균 가격: 5166.67원
'Dev. > Python' 카테고리의 다른 글
python :: 객체 지향 프로그래밍 (0) | 2022.07.14 |
---|---|
python :: 전역변수와 지역변수 (0) | 2022.07.14 |
python :: 모듈 (0) | 2022.07.05 |
python :: 튜플과 레인지 (0) | 2022.07.01 |
python :: if ~ elif~ else / 연산자 예제 (0) | 2022.06.30 |
댓글