2014-01-13 2 views
3

, 나는 영구 저장소에 사전의 일부를 전송해야합니다 :복사 부분은 (모두의 키와 값) 내 경우

adict={'a':'aaa','b':'bbb','c':'ccc'} 
newdict={'a':'aaa','b':'bbb'} 

내가 '[(A를 dict.fromkeys을 사용하려 ','b ']),이 키의 값을 구체적으로 지정하지 않는 한, 이것은 오직 기본 None Values ​​만 제공합니다. 내가 원했던 것은 원래의 dict이 이미 가지고있는 것들에 자동적으로 디폴트 값을주는 함수가 있다는 것이다.

newdict=adict.fromkeysautomatic(['a','b']) 

같은 뭔가 내가 그렇게 그렇게하는 함수를 쓰기 쉽게 알아,하지만 난이 몇 가지 자주 행동해야하기 때문에, 이미 일부 내장 된 메커니즘이 있어야한다 생각합니다. 그러나 나 자신을 찾음으로써 그것을 얻지는 못했다.

+2

이 할 수있는 좋은 생각이 아니다'DICT = ...' 'dict'는 이미 함수이기 때문입니다. – Keeler

+0

내가 할 사전 내장 된 방법이 있다고 생각하지 않는다. 당신은 dict comprehension을 선택하거나 어떤 종류의 함수를 호출하여 값을 매핑해야한다. –

답변

13

DICT 이해를 사용 :

>>> d = {'a':'aaa','b':'bbb','c':'ccc'} 
>>> newdict = {key:d[key] for key in ['a', 'b']} 
>>> newdict 
{'a': 'aaa', 'b': 'bbb'} 

사이드 참고 : 변수 이름으로 dict을 사용하지 마십시오. 그것은 내장 된 그림자 dict function입니다. 파이썬의 새로운 버전에서만 사용할 수있는 DICT 이해 방지

1

(2.7 이상) 당신은 또한 수행 할 수 있습니다

d = {'a':'aaa','b':'bbb','c':'ccc'} 
dd = dict((k, d[k]) for k in ("a", "b"))