這裏的功能是我試圖使用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) –
非常酷,謝謝! –