美文网首页
用一行代码高效的求一个列表的平方和

用一行代码高效的求一个列表的平方和

作者: GoPython | 来源:发表于2019-06-26 09:27 被阅读0次

    最近看到一个笔试题,考察的都是 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://www.haomeiwen.com/subject/ardqcctx.html