This may not be the best solution, but here we go:
>>> def copyf(data, key, allowed): ... return filter(lambda x: key in x and x[key] in allowed, data) ... >>> dictlist = [{'first': 'James', 'last': 'Joule'}, {'first': 'James','last': 'Watt'},{'first': 'Christian','last': 'Doppler'}] >>> copyf(dictlist, 'first', ('Christian',)) [{'last': 'Doppler', 'first': 'Christian'}] >>> copyf(dictlist, 'last', ('Christian',)) [] >>> copyf(dictlist, 'first', ('James',)) [{'last': 'Joule', 'first': 'James'}, {'last': 'Watt', 'first': 'James'}] >>>
source share