2011-09-29 5 views
2

코드에 값 설정 : {'a': {'sample': 1}, 'c': {}, 'b': {}} : 나는 사전 값이 그냥에 대한 값을 설정합니다 mydict['a']['sample'] = 1를 기다리고 있었다이를 얻을 것사전의 사전 값

>>> mydict = {} 
>>> keylist = ['a','b','c'] 
>>> mydict=dict.fromkeys(keylist,{}) 
>>> mydict['a']['sample'] = 1 
>>> mydict 
{'a': {'sample': 1}, 'c': {'sample': 1}, 'b': {'sample': 1}} 

합니다.

무엇이 여기에 있습니까? 예상되는 결과물을 얻으려면 어떻게해야합니까?

답변

6

문제는 모든 키에 대해 사전을 mydict에 추가 한 것입니다. 다음과 같이 다른 사전을 추가하려고합니다.

mydict = dict((key, {}) for key in keylist) 

위 코드에서 각 키와 쌍을 이루기 위해 새 사전을 만듭니다. 원래 코드에서 fromkeys 함수는 인수 (제공된 빈 사전)를 가져 와서 정확한 인수 - 함수에 전달하기 위해 만든 하나의 빈 사전 -을 각 키에 추가했습니다. 그 하나의 사전이 바뀌었을 때, 그 변화는 모든 곳에서 나타났습니다.