궁금증 연구소

안녕하세요. 궁금증연구소 입니다.

오늘 포스팅 주제는 "dict() 함수 에러" 입니다.

 

에러메세지 :  TypeError: dict expected at most 1 argument, got 3  

파이썬에서 딕셔너리를 만드는 방법은 다양하지만, 가장 대표적인 방법은 파이썬의 내장함수인 dict() 함수를 이용하는 것입니다. dict 함수는 매개변수로 다양한 값을 받을수 있는데, 가장 대표적인 것이 iterable 값과 key=value 형태로 짝을 지어서 매개변수로 넣어주면, 딕셔너리를 리턴값으로 돌려줍니다.

 

딕셔너리 함수 설명(출처- 비주얼스튜디오)

근데 딕셔너리 학원 프린트를 공부하다가 신기한걸(저한테만.. 신기한걸수도..ㅠ) 보게 되어 공유합니다.

 

먼저 아래와 같이 dict() 함수의 매개값으로 튜플 3개 값을 넣어주면 결과가 어떻게 될까요?

dict(('one', '고우림'), ('two', '이유민'), ('three', '홍길동'))

결과는 에러입니다. 

결과1

그렇다면 호기심이 생겼습니다. 변수 하나에다 지정해서 하면 어떻게 될까?

t = ('one', '고우림'), ('two', '이유민'), ('three', '홍길동')
d = dict(t)
print(d)

그래서 같은 튜플값을 먼저 t라는 변수에다 지정한 후 dict()함수의 매개값으로 넣어주었습니다.

 

 

 

 

 

 

 

결과는 신기하게도 딕셔너리로 변경된 값이 잘 출력됩니다.

 

결과값

 

그래서 한가지 실험을 더 해보았습니다. 튜플 값 자체를 딕셔너리에 넣어서 하나의 값으로 넘기면 결과가 나올까?

 

d = dict( [('one', '고우림'), ('two', '이유민'), ('three', '홍길동')])
print(d)

결과는 예상대로 였습니다.

 

결과3

 

이유는 잘 모르겠지만, 결론을 중심으로 정리해보자면
dict() 함수의 매개값은 1개만 받을수 있다.
만약 튜플 여러개 값을 dict()함수를 이용해서 딕셔너리로 만들고 싶다면, 먼저 변수1개에 담아서
매개변수로 넘겨주면 편하게 딕셔너리로 만들수 있다. 

(혹시 이유를 아시는 고수분 있으시면 댓글로 가르침을 부탁드립니다..ㅠㅠ)

 

 

 

 

 

 

 

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading