zoukankan      html  css  js  c++  java
  • 2018年4月14日笔记

    • 函数关键字

    def  函数声明

    return  返回值

    pass  略过,啥也不干

    exit(1)  直接退出

    • 高阶函数:可接收另一个函数作为参数的函数

    常用的高阶函数有:

    1. map()
    2. reduce()
    3. filter()
    4. sorted()  -> 最常用
    • map()函数:接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回

    例1:我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4]上,就可以用map()实现如下:

    • reduce()函数:把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:
      reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

    例2:写一个将字符串转化为整数的函数,即实现内置int()函数的功能

    也可使用lambda简化为:

    • filter()函数:接收一个函数f和一个list,这个函数f的作用是对每个元素进行判断,返回true或false,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件的元素组成的list

    例3:将一个列表中的奇数过滤出来

     

    • sorted()函数:对所有可迭代的对象进行排序操作

    sorted 语法:

    sorted(iterable[, cmp[, key[, reverse]]])

    参数说明:

    • iterable -- 可迭代对象。
    • cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
    • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

    例4:对列表和字典进行排序

    • 列表生成式

    格式为:[exp for val in collection if condition]

    例如,list = [x for x in range(1,10) if x%2==0]

    • 生成器
    1. 方法一: (exp for val in collection if condition)
    2. 方法二:使用yield关键字,包含yield语句的函数会被特定的编译成生成器。yield可以理解为return,但并不退出,只是挂起,恢复时从yield下面开始执行。

    通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。

    所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器(Generator)。

    通过next()函数获得generator的下一个返回值 

    例:著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到:

    1, 1, 2, 3, 5, 8, 13, 21, 34, ...

    斐波拉契数列用列表生成式写不出来,但可以用生成器写出来,如下:

  • 相关阅读:
    windchill系统安装大概步骤
    Javase、Javaee、Javame的区别
    Cocoa Touch事件处理流程--响应者链
    iOS KVC & KVO
    GET异步 请求图片步骤
    iOS7——图像资源Images Assets
    IOS编程教程(八):在你的应用程序添加启动画面
    Objective C内存管理之理解autorelease------面试题
    runtime 运行时机制 完全解读
    图片的异步下载
  • 原文地址:https://www.cnblogs.com/karl-python/p/8850324.html
Copyright © 2011-2022 走看看