python3.x中lambda表示式遇到的一些問題以及解決辦法
阿新 • • 發佈:2019-02-05
lambda表示式
在python3中 使用reduce,map會和2.x版本有很多區別
想正常展示結果,需要一些一些動作。
map函式,不再返回 陣列,需要轉換
例如
map(lambda x: x ** 2, [1, 2, 3, 4, 5])
將會顯示成:
<map object at 0x0000000002D4F898>
需要轉換一下
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))
[1, 4, 9, 16, 25]
>>> list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
[3, 7, 11, 15, 19]
reduce函式:
在Python 3裡,reduce()函式已經被從全域性名字空間裡移除了,它現在被放置在fucntools模組裡 用的話要 先引
入:
>>> from functools import reduce
>>> reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)
21
>>> reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])
20