delete all keys except one in dictionary delete all keys except one in dictionary python python

delete all keys except one in dictionary


Why don't you just create a new one?

lang = {'en': lang['en']}

Edit: Benchmark between mine and jimifiki's solution:

$ python -m timeit "lang = {'ar':'arabic', 'ur':'urdu','en':'english'}; en_value = lang['en']; lang.clear(); lang['en'] = en_value"1000000 loops, best of 3: 0.369 usec per loop$ python -m timeit "lang = {'ar':'arabic', 'ur':'urdu','en':'english'}; lang = {'en': lang['en']}"1000000 loops, best of 3: 0.319 usec per loop

Edit 2: jimifiki's pointed out in the comments that my solution keeps the original object unchanged.


This is quite fast:

En_Value = lang['en']lang.clear() lang['en'] = En_Value


Iterate over keys() instead:

for k in lang.keys():    if k != 'en':        del lang_name[k]

If you're using Python 3 I believe you need to use list(lang.keys()) instead.