用一行代码高效的求一个列表的平方和
生活随笔
收集整理的這篇文章主要介紹了
用一行代码高效的求一个列表的平方和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近看到一個筆試題,考察的都是 Python 中的高階函數 題目如下:用一行代碼高效的求一個列表的平方和(不能用 sum 函數)
分析
1.先將列表中每個值作平方:
立即想到 map 函數,假設列表是 range(10),那么這個列表中平方是這樣
map(lambda x: x**2 , range(10))
復制代碼因為題目要求一行代碼,所以匿名函數 lamdba 是必須的!
2. 求和:
Python 中有個高階函數 reduce 就是用來做累積的! 比如,求兩個數的和,如下
reduce(lambda x,y: x+y)
復制代碼最后將兩者合起來,結果如下:
result = reduce(lambda x, y: x+y, (map(lambda x: x ** 2, range(10))))
復制代碼還可以用 eval 函數
result = eval("+".join(str(i ** 2) for i in range(10)))
復制代碼
轉載于:https://juejin.im/post/5d1c62176fb9a07efb69a0f9
總結
以上是生活随笔為你收集整理的用一行代码高效的求一个列表的平方和的全部內容,希望文章能夠幫你解決所遇到的問題。