본문 바로가기
개발 Tools/파이썬_개념

파이썬 딕셔너리(dictionary)(수정, 함축, 삭제, 삽입, 변환)

by 전컴반 2021. 9. 17.
반응형

딕셔너리는 key와 value로 맵핑되어 있는 순서가 없는 집합이다. hash function을 사용하여 value값에 쉽게 접근 가능하다. 

 

값에 접근

 

d1 = {"a" : 1 , "b" : 2, "c" : 3}

print(d1["a"])
print(d1["b"])
print(d1["c"])

출력
1
2
3

 

이런 식으로 []를 이용하여 value값에 접근 가능하다

 

중복 key

 

d1 = {"a" : 1, "b" : 2, "c" : 3, "a" : 4, "b" : 5}

print(d1)

출력
{"a" : 4, "b" : 5, "c" : 3}

 

이처럼 key값이 같다면 제일 마지막에 있는 값을 가져온다. 

 

dict 변환

 

변환은 리스트나, 튜플로 변환 가능하다. 대신 짝이 있어야 한다.

 

l1 = [["a", 1], ["b", 2], ["c", 3]]
d1 = dict(l1)
print(d1)

t1 = (("a", 1), {"b", 2), ("c", 3))
d2 = dict(t1)
print(d2)

출력
{"a" : 1, "b" : 2, "c" :3}
{"a" : 1, "b" : 2, "c" :3}

 

딕셔너리 key 값

 

딕셔너리의 키로 올 수 없는 것은 list, set, dic은 사용할 수 없다.

string, tuple, integer 은 모두 key로 사용 가능하다.

 

s1 = "hello"
l1 = [1, 2, 3]
t1 = (1, 2, 3)
i1 = 5

d1 = (s1 : 1, l1 : 2, t1 : 3, il : 5}  # 에러
d2 = (s1 : 1, t1 : 3, il : 5}

print(d2)

출력
{"hello" : 1, (1, 2, 3) : 3, 5 : 5}

 

항목 추가

 

d1 = {}
d1["A"] = 14
d1["B"] = 15
d1["C"] = 17

print(d1)

출력
{"A" : 14, "B" : 15, "C" : 17}

 

항목 삭제

 

d1 = {"A" : 14, "B" : 15, "C" : 17}

if "B" in d1:
	d2 = d1.pop("B")

print(d2)

출력
{"A" : 14, "C" : 17}

 

만약 key가 없다면 키 에러가 발생함으로 if문을 걸어줘서 사용한다

 

항목 방문 (retrieve)

 

d1 = {"A" : 14, "B" : 15, "C" : 17}

for key, value in d1.items():
	print(f"{key} : {value})
    
출력
"A" : 14
"B" : 15
"C" : 17

 

. items()는 key, value를 짝지을 수 있다. 

 

함축

 

values = [ 1,2,3,4,5 ]

dic = { x: x**2 for x in values if x%2==0 }
print(dic)

출력
{ 2:4, 4: 16, 6:36 }

 

dic = { x(key값) : x**2(value값)[출력 수식단] for x in values if x%2==0 [조건] }

꼭 if를 넣지 않아도 된다.

반응형

댓글