zoukankan      html  css  js  c++  java
  • python学习第12天

    一.迭代器

    1.概念

    迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续,单纯的重复不是迭代

    2.特征

    不依赖索引,通过next指针迭代所有数据,一次只取一个,可以大大节省空间,迭代无限量的数据

    3.可迭代对象

    如果成员中含有__iter__这个方法,就是可迭代对象

    dir函数可以用来查看一个对象中的所有成员

    4.如何定义一个迭代器

    1)iter(可迭代对象)

    2)可迭代对象.__iter__()

    5.如何判断一个迭代器

    1)如果内置成员中含有__iter__和__next__两个方法,就可以判断是一个迭代器

    2)使用Iterator和Iterable来判断是否是迭代器

    from collections import Iterator , Iterable

    6.如何调用一个迭代器

    1)next(迭代器)

    2)迭代器.__next__()

    迭代器通过next方法调用时,是单向不可逆的过程

    3)通过for循环,遍历迭代器

    4)for和next配合调用迭代器

    注意:

    (1)for循环遍历数据的底层实现就是利用了迭代器,通过next方法进行调用,从而获取数据

    (2)可迭代对象和迭代器之间的关系:从不可被直接获取 => 可被直接获取的过程

    (3)是一个可迭代对象,不一定是一个迭代器

      是一个迭代器,一定是一个可迭代对象

    二.高阶函数 :能够把函数当成参数传递的就是高阶函数

    1.map函数

    map(func,iterable)

    功能:

      把iterable里面的数据一个一个拿出来,放到func函数中进行处理,把处理的结果扔到迭代器中,返回迭代器

    参数:
      func  内置或自定义函数

      iterable 具有可迭代性的数据 (迭代器,容器类型的数据,range对象)
    返回值: 迭代器

    2.filter函数

    filter(func,iterable)
    功能:
      在自定义的函数中过滤数据

      如果返回True, 代表保留数据

      如果返回False,代表舍弃该数据
    参数:
      func : 自定义函数
      iterable : 具有可迭代性的数据(迭代器,容器类型数据,可迭代对象)
    返回值:
      返回处理后的迭代器

    3.reduce函数

    reduce(func,iterable)

    功能:一次性从iterable当中拿出两个值,扔到func函数中进行处理

      把运算的结果和iterable的第三个值接续扔到func中做运算...以此类推最后返回计算结果

    参数:

      func  自定义函数

      iterable  可迭代性数据(容器类型数据,range对象,迭代器)

    返回值: 最后计算的结果

    4.sorted函数

    sorted(iterable,reverse=False,key=函数)

    功能:排序

    参数:

      iterable  可迭代性数据(容器类型数据,range对象,迭代器)

      reverse  代表是否倒序,reverse=True代表倒序,从大到小,reverse=False,代表正序,从小到大

      key    自定义函数或内置函数

    返回值:

      排序后的列表

    sort  基于原有的列表进行排序,只限定列表类型

    sorted 所有的容器类型数据都能排序,返回一个全新的列表(推荐)

  • 相关阅读:
    Chapter6 Commodity Forwards
    Chapter5 Prepaid Forwards
    个人作业5——软工个人总结
    软工网络15个人作业3
    软工网络15——结对编程
    软工网络15个人阅读作业2
    软工网络15个人阅读作业1 201521123080曾飞远
    Java课程设计 猜数游戏个人博客
    201521123080《Java程序设计》第14周学习总结
    201521123080《Java程序设计》第13周学习总结
  • 原文地址:https://www.cnblogs.com/yunchao-520/p/12891934.html
Copyright © 2011-2022 走看看