zoukankan      html  css  js  c++  java
  • python知识点 07-11

    python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量

    python的

    nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。

    nonlocal是在Python3.0中新增的关键字,python2.x不提供支持

    解包参数:

    在调用函数时使用*语法

    def func(a,b,c,d):
        print(a,b,c,d)
    
    args = (1,2) + (3,4)
           
    if __name__ == '__main__':
        func(*args)

    这个主要是在2.6中使用apply函数实现,但是在3.0之后就废弃了这个方法,不会调用任何函数

    参数类型:

    1、关键字参数 

    2、默认参数

    3、任意参数 *,** 不过**必须在*的后面出现

    lambda表达式

    lambda arg1,arg2,arg3 : expression using arguments

    函数式编程工具:

    map、filter和reduce

    map把每一项传递给函数并收集结果,filter手机那些函数返回一个True值的项,并且reduce通过对一个累加器和后续项应用函数计算一个单个的值,reduce是在Python3.0的functools模块中可用,而不是内置作用域中。

    map(function,sequence)

    把sequence中的值当参数逐个传给function,返回一个包含函数执行结果的list。

    如果function有两个参数,即map(function,sequence1,sequence2)。

    例子:

    求1*1,2*2,3*3,4*4

    map(lambda x:x*x,range(1,5))

    返回值是[1,4,9,16]

    reduce(function,sequence)

    function接收的参数个数只能为2!

    先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给

    function,然后只返回一个结果。

    例子:

    求1到10的累加

    reduce(lambda x,y:x+y,range(1,11))

    返回值是55。

    filter(function,sequence)

    function的返回值只能是True或False!

    把sequence中的值逐个当参数传给function,如果function(x)的返回值是True,就把x加到filter的返回值里面。一般来说filter的返回值是list,特殊情况如sequence是string或tuple,则返回值按照sequence的类型。

    例子:

    找出1到10之间的奇数

    filter(lambda x:x%2!=0,range(1,11))

    返回值

    [1,3,5,7,9]

  • 相关阅读:
    Scala 并发编程
    rsyslog start with
    rsyslog start with
    logrotate 日志清理后 rsyslog中断问题
    logrotate 日志清理后 rsyslog中断问题
    logrotate 清理tomcat日志
    rsyslog 传输mysql 日志
    rsyslog 传输mysql 日志
    NYOJ833
    NYOJ65
  • 原文地址:https://www.cnblogs.com/beiyeren/p/3838343.html
Copyright © 2011-2022 走看看