通常,可以使用 map 将关键字传递给函数,方法是将函数包装在解包字典的东西中,然后将字典的可迭代对象传递给 map。示例:
from itertools import product
volume_ids = [1,2,3,4,5]
volume_ids = (("volume_id", volume_id) for volume_id in volume_ids)
ips = [("ip", '172.12.13.122')]
kwargs_iterable = map(dict, product(volume_ids, ips))
result = map(lambda kwargs: my_function(**kwargs), kwargs_iterable)
但是,对于您的特殊情况,更简单的解决方案是:
map(my_function, volume_ids, [ip]*len(volume_ids))
这是简洁的,不依赖于任何导入。另一种可能性是结合 itertools 中的产品和星图:
from itertools import product, starmap
ips = [ip]
starmap(my_function, product(volume_ids, ips))
这很好地概括了具有多个 IP 地址或两个以上变量的设置。