比方說,我有一個Python模塊在這個函數:方便的方法將lambda函數一起添加?
def functionmaker(a,b):
return lambda x: (a*x) + b
現在讓我們說,我給這個格式的列表:任意長度的 ablist = [[a1, b1], [a2, b2]...[an, bn]]
。
我的目標是將所有從這些a和b得到的結果相加。
當然,用我給ax + b的簡單例子,你可以用代數的方法解決這個問題,即(a1 + a2 + ... an)x + (b1 + b2 + ... bn)
。但讓我們暫時忽略這一點。我實際上使用的函數是一個收縮的高斯分子軌道函數,用代數來解決問題並不容易。
我想做的事是這樣的:
function = lambda x: (a1*x) + b1
q = 2
while q < n:
function = lambda x: function(x) + (ablist[q][0]*x) + ablist[q][1])
q += 1
但似乎你不能調用函數內部本身那樣。我希望它會覆蓋舊版本的「功能」與新的,但我猜不是。我想我可能需要做某種遞歸的方式,但也許有更好的方法?
順便說一下,我使用python 2.7。
你能格式化你的代碼了一點點,有一個只是純文本的功能,並且是縮進的。 – TankorSmash
對於它的價值,'lambda'函數_can_在他們的定義中調用自己。 – martineau
你是什麼意思「加起來」的功能?評估它們並添加結果?或者生成一系列嵌套函數? –