2017-04-25 14 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

1つ以上のキーを除外することはできますか? –

+0

@ ShiftN'Tabはい、私の更新を見てください。 – khachik

+0

'dict1.copy()'を実行してから 'dict2.pop( 'flag')'を実行すると、多数のキーを持つ辞書がある場合に効率的になりますか? – VMRuiz

関連する問題