这里的功能是我试图使用map
功能的环路:使用地图()的关键字参数
volume_ids = [1,2,3,4,5]
ip = '172.12.13.122'
for volume_id in volume_ids:
my_function(volume_id, ip=ip)
有没有一种方法,我可以做到这一点?如果它不是ip
参数,这将是微不足道的,但我不知道如何处理。
这里的功能是我试图使用map
功能的环路:使用地图()的关键字参数
volume_ids = [1,2,3,4,5]
ip = '172.12.13.122'
for volume_id in volume_ids:
my_function(volume_id, ip=ip)
有没有一种方法,我可以做到这一点?如果它不是ip
参数,这将是微不足道的,但我不知道如何处理。
from functools import partial
mapfunc = partial(my_function, ip=ip)
map(mapfunc, volume_ids)
partial()
创建一个新的调用,那将适用任何参数(包括关键字参数)的包装的函数除了任何被传递到新的调用。
这里是一个lambda方法(不是更好,只是不同)
volume_ids = [1,2,3,4,5]
ip = '172.12.13.122'
map(lambda ids: my_function(ids, ip), volume_ids);
泛音更快,lambda表达式支持乱序参数 –
这个怎么样?
results = []
for volume_id in volume_ids:
results.append(my_function(volume_id, ip=ip))
这是三行代码,而不是一个---它是不是从模块等,和进口等一些特殊情况的辅助三行明确而清晰的代码。这个说法可能是一个口味问题,但是它的重量取决于你与谁交谈。
这可以通过列表理解轻松完成。
volume_ids = [1,2,3,4,5]
ip = '172.12.13.122'
results = [my_function(i,ip=ip) for i in volume_ids]
在修真创建my_function的参数被向后更好地履行对我们来说。它应该是 my_function(i,ip = ip) –
非常酷,谢谢! –