Cameron Sparr Cameron Sparr - 3 months ago 20
Python Question

Using Python map() function with keyword arguments

Here is the loop I am trying to use a map function on:

volume_ids = [1,2,3,4,5]
ip = '172.12.13.122'
for volume_id in volume_ids:
my_function(volume_id, ip=ip)


is there a way I can do this? It would be trivial if it weren't for the
ip
parameter, but I'm not sure how to deal with that.

Answer

Use functools.partial():

from functools import partial

mapfunc = partial(my_function, ip=ip)
map(mapfunc, volume_ids)

partial() creates a new callable, that'll apply any arguments (including keyword arguments) to the wrapped function in addition to whatever is being passed to that new callable.

Comments