dictionary

Nam Eun-Ji·2020년 11월 26일
0
dict = { key1: value1, key2: value2, ... }
  • key 값은 중복될 수 없다. 만약 중복된다면 마지막 값으로 덮어씌워진다.
  • 순서가 없기 때문에 인덱스로 접근할 수 없고, 키로 접근가능하다.

접근방법

dict1 = {'a':'apple', 'b':'banana', 'c':'candy'}
print(dict1['a'])   # apple


선언

set도 중괄호{}를 사용하지만 비어있는 상태로 선언할 경우에는 dictionary로 선언된다.

dict1 = {}       # <class 'dict'>
dict2 = dict()   # <class 'dict'>

dict constructor를 이용하여 바로 키와 값을 할당하며 선언할 수 있다.

dict1 = dict( a=1, b=2, c=3 )
# {'a':1, 'b':2, 'c':3 } 


형변환

list 안의 list/tuple 혹은 tuple 안의 list/tuple이면서 키와 값을 나란히

check1 = [('a',1),('b',2)]
result1 = dict(check1)   # { 'a':1, 'b':2 }

check2 = (('c',3),('d',4))
result2 = dict(check2)   # { 'c':3, 'd':4 }

check3 = (('c',3),('d'))
result3 = dict(check2)   # ValueError: dictionary update sequence element #1 has length 1; 2 is required


copy

dic1 = { 'a':1, 'b':2 }
dic2 = dict(dic1)         # {'a': 1, 'b': 2}
print(id(dic1))           # 140293699735624
print(id(dic2))           # 140293699032408
dic1 = { 'a':1, 'b':2 }
dic2 = dic1.copy()        # {'a': 1, 'b': 2}
print(id(dic1))           # 139936389283912
print(id(dic2))           # 139936389284056
import copy

dic1 = { 'a':1, 'b':2 }
dic2 = copy.deepcopy(dic1) # {'a': 1, 'b': 2}
print(id(dic1))            # 139846371319880
print(id(dic2))            # 139846370616160


update

키로 접근하여 값을 수정한다. 이를 이용하여 키 추가가 가능하다.

dic1 = { 'a':1, 'b':2 }
dic1['a'] = 11
print(dic1)                # {'a':11, 'b':2}

dic1['c'] = 3
print(dic1)                # {'a': 11, 'b': 2, 'c': 3}

여러 값 수정은 update 메소드를 이용하여 수정 가능하다.

dic1 = { 'a':1, 'b':2 }
dic1.update({'a':11, 'c':33})

print(dic1)                # {'a': 11, 'b': 2, 'c': 33}


delete

del키워드를 이용하여 삭제

dic1 = { 'a':1, 'b':2 }
del dic1['a']
print(dic1)      # {'b': 2}


for문

일반 for문 사용시 키를 가져옴

dict1 = {'a':'apple', 'b':'banana'}
for key in dict1:
    print(key)
# a
# b
dict1 = {'a':'apple', 'b':'banana'}
for key in dict1:
    print(dict1[key])
# apple
# banana

.values()

values()사용 시 key가 아닌 valuer값들을 가져옴

dict1 = {'a':'apple', 'b':'banana'}
for key in dict1.values():
    print(key)
# apple
# banana

.items()

key와 value를 tuple형태로 가져옴

dict1 = {'a':'apple', 'b':'banana'}

for el in dict1.items():
    print(el)
# ('a', 'apple')
# ('b', 'banana')

for key,value in dict1.items():
    print(f"key: {key}, value: {value}")
# key: a, value: apple
# key: b, value: banana


in / not in

dictionary안에 해당 키가 존재하는지 체크할 수 있다.

dict1 = {'a':'apple', 'b':'banana'}

print('a' in dict1)      # True
print('c' in dict1)      # False
print('c' not in dict1)  # True
profile
한 줄 소개가 자연스러워지는 그날까지

0개의 댓글