有没有办法在
python中以更简洁的方式执行以下语句?
代替
a, b, c, d = f(1), f(2), f(3), f(4)
这个:
a, b, c, d = some_way(f(x))
最佳答案 你可以像这样使用列表理解
a, b, c, d = [f(i) for i in xrange(1, 5)]
或者使用map功能,就像这样
a, b, c, d = map(f, xrange(1, 5))
在这两种情况下,
print a, b, c, d
将打印
1 4 9 16
编辑:
正如评论部分所述,这是curried版本
def curry_function(function, first, second):
return lambda third: function(first, second, third)
f = curry_function(f, "dummy1", "dummy2")
然后你可以使用上面显示的代码.我们可以像这样使用functools.partial
,而不是编写我们自己的currying函数版本
from functools import partial
f = partial(f, "dummy1", "dummy2")