python学习第12天

一.迭代器

1.概念

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

2.特征

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

3.可迭代对象

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

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

4.如何定义一个迭代器

1)iter(可迭代对象)

2)可迭代对象.__iter__()

扫描二维码关注公众号,回复: 11192845 查看本文章

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=True,代表正序,从小到大

  key    自定义函数或内置函数

返回值:

  排序后的列表

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

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

猜你喜欢

转载自www.cnblogs.com/yunchao-520/p/12891934.html