迭代器
首先了解一下什么是迭代器
当建立了一个列表,可以读取这个列表,这叫做一个可迭代对象.
list1=[1,2,3,4]
for a in list1:
print(a)
list1就是一个可迭代的对象
所有你可以使用 for … in … 语法的叫做一个迭代器:列表,字符串等
1.sorted
功能:对一组数据进行排序操作,并返回新的数据.
语法:sorted(iteration,reverse=False,key=func)
iteration:迭代器(一组可迭代/遍历的数据)
reverse: 可选参数,是否倒序排序,默认是False
key:可选参数,用户自定义函数,这是自定义规则,默认按大小排序.
实例
list1=[2,4,7,1]
c=sorted(list1,reverse=True) #倒叙排序
print(c) #输出结果[7, 4, 2, 1]
--------------
def f(num):
return num*num>16 #定义一个函数,返回值为 数据的平方大于16的数据
list2=[1,4,5,9,7]
d=sorted(list2,reverse=True,key=f)
print(d) #输出值[5, 9, 7, 1, 4] 满足f的在左边,不满足的在右边
2.map
功能:处理和计算数据
语法
from collections import Iterable 导入模块和功能
map(func,iterable)
实例
from collections import Iterator
list1=[1,2,3,4,5]
def f(n):
return n**2 #返回值是一个迭代器
result=map(f,list1)
for e in result: #对迭代器进行遍历
print(e)
3.reduce
导入:from functools import reduce
语法:reduce(func,iterable)
功能:从iterable中获取两个值,移动到func中进行处理和运算,
将处理结果和iterable中的后续的一个数据,再次移动到func中进行处理和运算,
重复上述操作,可迭代的数据处理完毕后,此函数结束
func: 针对数据操作的函数
iterable : 可以迭代的数据 (迭代器,复杂的数据的类型的数据,range生成的一组数据)
返回值:最终计算的结果
实例
求1-100所有偶数和
from functools import reduce #导入functools中的reduce功能
def f (a,b): #定义一个函数,返回值是a+b
return a+b
num=range(1,101,2)
for n in num:
result=reduce(f,num)
print(result) #输出结果2500
4.filter
语法:filter(func, iterable)
功能:过滤数据 ,用户自定义函数需要设置返回值,如果返回值为False,则过滤掉此数据
从iterable的数据源中获取一个值,移动到func中进行判断,
如果返回值为False,则过滤掉此数据
重复上述操作,可迭代的数据处理完毕后,此函数结束,以迭代器的方式返回剩下数据
参数:
func: 针对数据操作的函数
iterable : 可以迭代的数据 (迭代器,复杂的数据的类型的数据,range生成的一组数据)
返回值:迭代器
实例
list1=[1,2,3,4,5]
def func(num):
return num%2==0 # 偶数返回:True
result=filter(func,list1)
print("最终处理完毕后的数据:",tuple(result)) #将迭代器放入元组中输出