python - A pythonic way to take a dictionary as input and return a sub-dictionary as output -


i looking pythonic way take dictionary , key name input, , return dictionary without key (and associated value) output.

this came far:

def subdict(inputdict,inputkey):     return dict([(key,val) key,val in inputdict.iteritems() if key != inputkey]) 

test case:

print subdict({'a':1,'b':2,'c':3},'b') 

gives:

{'a': 1, 'c': 3} 

are there better suggestions (cleaner and/or simpler code)?

thank you.

well, comprehension might replaced dictionary display:

{key:val key,val in inputdict.iteritems() if key != inputkey} 

but might faster copy , remove, lookup o(1). because of filter, python won't know in advance size of dictionary, , hash table might become costly grow.

def subdict(inputdict, inputkey):     subdict = inputdict.copy()     del subdict[inputkey]     return subdict 

this readable.

if want silently ignore case when inputkey not found, can replace del subdict.pop(inputkey, none). provides default value (which ignore) rather double check.


Comments