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
Post a Comment