개발 Tools/파이썬_개념

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

전컴반 2021. 9. 17. 13:40

딕셔너리는 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를 넣지 않아도 된다.

반응형