2017-04-25 1 views
1

dict에 변수를 전달할 때 일부 키를 제외하려고합니다. 예를 들면.변수에 전달할 때 dict의 특정 키를 제외하십시오.

dict1 = { 
    'id': 1, 
    'name' : 'John Woe', 
    'flag' : True, 
    'position' : 'Developer' 
} 

지금은 dict2 변수에 전달할 때 키 flag 또는 지정된 키를 제외하고 싶습니다. 일반적으로 간단하게 지정할 수 있지만 동적 접근 방식을 원합니다. 이와 같은

: O(MN)되고 이에 대한 의견의 비판에 대한 응답으로

dict2 = dict1.exclude(['flag', 'position']) 

답변

2
keys_to_exclude = set(('flag',)) 
dict2 = {k:v for k,v in dict1.iteritems() if k not in keys_to_exclude} 

-keys_to_exclude이 설정 될 수 있으며 가비지 수집에 덜 부담 그것을 O(N)을 만들 것입니다, 솔루션에 비해.

+0

하나 이상의 키를 제외 할 수 있습니까? –

+0

@ ShiftN'Tab 예, 내 업데이트를 참조하십시오. – khachik

+0

'dict1.copy()'그리고 나서'dict2.pop ('flag')'가 많은 수의 키를 가진 dicts의 경우 더 효율적일 수 있다는 것을 아십니까? – VMRuiz

관련 문제