python3.x中lambda表達式的處理與python2不一樣


lambda表達式,在python2中的表達式和python3不同,原來只要:

>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])                    原來python2
[1, 4, 9, 16, 25]

>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))             現在python3
[1, 4, 9, 16, 25]

在python3中使用reduce函數:在Python 3里,reduce()函數已經被從全局名字空間里移除了,它現在被放置在fucntools模塊里用的話要先導入:

>>> from functools import reduce

reduce函數的定義:
reduce(function, sequence[, initial]) -> value
function參數是一個有兩個參數的函數,reduce依次從sequence中取一個元素,和上一次調用function的結果做參數再次調用function。
第一次調用function時,如果提供initial參數,會以sequence中的第一個元素和initial作為參數調用function,否則會以序列sequence中的前兩個元素做參數調用function。 

>>> reduce(lambda x,y: x + y, [2, 3, 4, 5], 1)
15
>>> reduce(lambda x,y: 2*x + 3*y, [2, 3, 4, 5], 1)
139

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM