美文网首页
python学习笔记:同时对数据做转换和换算

python学习笔记:同时对数据做转换和换算

作者: 潼潼夏 | 来源:发表于2020-02-18 16:10 被阅读0次

    问题

    如果需要调用一个换算函数(例如sum()、min()、max()),就需要首先对数据做转换和筛选。

    解决方案

    在函数参数中使用生成器表达式。
    示例1:

    nums = [1,2,3,4]
    s = sum(x*x for x in nums)
    print s
    #s=30
    

    示例2:

    portfolio=[{'name':'goog','shares':50},{'name':'go','shares':90},{'name':'pp','shares':5},{'name':'gc','shares':23}]
    min_shares = min(s['shares'] for s in portfolio)
    print min_shares
    #min_shares=5
    

    如果不使用生成器做参数,可以考虑以下这种实现:

    nums = [1,2,3,4]
    s = sum([x*x  for x in nums])
    #s=30
    

    比起首先创建一个临时的列表,使用生成器做参数通常是更为高效和优雅的方式。对于引入一个这么小的临时列表,无关紧要,但是如果nums非常巨大,那么就会创建一个庞大的数据结构,而且只用一次就丢弃。
    基于生成器的解决方案可以以迭代的方式转换数据,因此在内存使用上高效的多。

    相关文章

      网友评论

          本文标题:python学习笔记:同时对数据做转换和换算

          本文链接:https://www.haomeiwen.com/subject/dkvgfhtx.html