zoukankan      html  css  js  c++  java
  • Python: 在序列上执行聚集函数(比如sum() , min() , max() )

    在序列上执行聚集函数(比如sum() , min() , max() )

    eg1:

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

    eg2:

    >>>import os

    >>>files=os.listdir('C:share')

    >>>if any(name.endswith('.py') for name in files):

    ...   print('There be python')

    ...    else:

    ...     print('Sorry...')

    eg3:

    >>>s = ('ACME', 50, 123.45)
    >>>print(','.join(str(x) for x in s))

    eg4:

    >>>portfolio = [
    {'name':'GOOG', 'shares': 50},
    {'name':'YHOO', 'shares': 75},
    {'name':'AOL', 'shares': 20},
    {'name':'SCOX', 'shares': 65}
    ]
    >>>min_shares = min(s['shares'] for s in portfolio)

    or

    >>>min_shares = min(portfolio, key=lambda s: s['shares'])

    附:

    使用一个生成器表达式作为参数会比先创建一个临时列表更加高效, 如果你不使用生成器表达式的话,你可能会考虑使用下面的实现方式:
    >>>nums = [1, 2, 3, 4, 5]
    >>>s = sum([x * x for x in nums])

    这种方式同样可以达到想要的效果,但是它会多一个步骤,先创建一个额外的列表。对于小型列表可能没什么关系,但是如果元素数量非常大的时候,它会创建一个巨大的仅仅被使用一次就被丢弃的临时数据结构。而生成器方案会以迭代的方式转换数据,因此更省内存。

  • 相关阅读:
    java_doc
    zai~~myGODDDD
    get span time
    someThing about thread
    互斥
    http://www.vchelp.net/services/about_us/itbookreview_intro.asp
    (十三)sealed、new、virtual、abstract 和 override java程序员
    (15) 常用基础知识 java程序员
    (14)abstract class 和 interface java程序员
    (16) 结构和类 java程序员
  • 原文地址:https://www.cnblogs.com/baxianhua/p/8304293.html
Copyright © 2011-2022 走看看