딕셔너리 삽입 순서에 의존할 때는 조심하라#15

김주현·2021년 6월 30일
0
baby_names = { 'cat':'kitten',
                'dog':'puppy',}
print(baby_names)
print(list(baby_names.keys())) #딕셔너리 key값 출력
print(list(baby_names.values())) #딕셔너리 값 출력
print(list(baby_names.items())) # 전체출력
print(list(baby_names.popitem())) # 임의로 원소를 하나 선택

{'cat': 'kitten', 'dog': 'puppy'}
['cat', 'dog']
['kitten', 'puppy']
[('cat', 'kitten'), ('dog', 'puppy')]
['dog', 'puppy']

딕셔너리 메서드를 이용하면 순서에 의존하게 되므로 특정구현에 의존하는 다른 메서를 이용하기에 영향을 많이 끼친다. (**kwargs 포함)
순서가 뒤죽박죽 되며 함수호출은 디버깅하기 힘들다

def my_func(**kwargs): # 파라미터 명과 함께 딕서너리 형태로 전달
    for key, value in kwargs.items():
        print('%s =%s' % (key, value)) #($s, 문자열)
my_func(goose= 'gosling',kangaroo='joey')

goose =gosling
kangaroo =joey

:)딕셔너리 타입의 경우 키 삽입 순서가 그대로 보전된다고 가정할 수 없음
:)실행시점에 명시적으로 dict타입을 검사하는 방법, 타입 애너테이션과 정적분석을 사용해 dict 값을 요구하는 방법

profile
잼민이개발자

0개의 댓글