1.- [r.update(r.pop('some_key')) for r in res if r.get('some_key')]
List Comprehension for side effect is not recommended. It creates a list which is discarded at the end of the operation
2.- map(lambda r: r.update(r.pop('some_key') if r.get('some_key') else []), res)
Not much different from 1
except that, this will break in Py 3.X.
3.- map(lambda r: r.update(r.pop('some_key')), filter(lambda r: r.get('some_key'), res))
Worse then 3
. Apart from using map
and relying on side effect, you are adding the overhead of a function call
4.- for r in res:
if r.get('some_key'):
for element in r['some_key']:
r[element] = r['some_key'][element]
del r['some_key']
This is better than the rest
- No unnecessary List generated that will be discarded
- Will work in Py 3.x
- No explicit function call overhead
5.- Insert your own approach here
for r in res:
if 'some_key' in r:
r.update(r['some_key'])
del r['some_key']