python之高级函数
2022/8/8 1:24:23
本文主要是介绍python之高级函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 今天,小编将分享6个堪称神仙的内置函数。在很多计算机书籍中,它们也通常作为高阶函数来介绍。而我自己在日常工作中,经常使用它们来使代码更快,更易于理解。
- 1、Lambda函数
- Lambda函数用于创建匿名函数,即没有名称的函数。它只是一个表达式,函数体比def简单很多。当我们需要创建一个函数来执行单个操作并且可以在一行中编写时,就可以用到匿名函数了。
- 语法:执行表达式并返回结果。
- lambda arguments(参数) : expression(表达式)
x = lambda a, b, c : a + b + c print(x(5, 6, 2))
- 2、Map函数
- map() 会根据提供的函数对指定序列做映射。
- 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
- map() 函数语法:map(function, iterable, ...)
- function -- 函数
- iterable -- 一个或多个序列
- 比如我们先创建了一个函数来返回一个大写的输入单词,然后将此函数应有到列表colors中的所有元素。
def makeupper(word): return word.upper() colors = ['red','yellow','green','black'] colors_upper = list(map(makeupper,colors)) print(colors_upper) #配合lambda函数更加简洁 colors = ['red','yellow','green','black'] print(list(map(lambda x:x.upper(),colors))) #多个可迭代对象的时候 a=[1,3,5] b=[2,4,6] print(list(map(lambda x,y:x*y,a,b))) #[2, 12, 30]
- 3、Reduce函数
- 当需要对一个列表进行一些计算并返回结果时,reduce()是个非常有用的函数。举个例子,当需要计算一个整数列表所有元素的乘积时,即可使用reduce函数实现
- 它与map函数的最大的区别就是,reduce()里的映射函数(function)接收两个参数,而map接收一个参数
- Python3.x reduce()已经被移到functools模块里,如果我们要使用,需要引入functools模块来调用 reduce()函数:from functools import reduce
- 语法:
- reduce(function, iterable[, initializer])
- 参数
- function -- 函数,有两个参数
- iterable -- 可迭代对象
- initializer -- 可选,初始参数
- reduce(function, iterable[, initializer])
- reduce将函数作用在一个列表上,映射函数接收了两个参数,reduce()把结果继续和列表的下一个元素做累加计算
from functools import reduce def add(*args): result = 0 for i in args: result += i return result L = list(range(1,101)) # print(L) # print(add(1,2,3)) print(reduce(add,L)) #使用匿名函数lambda print(reduce(lambda x,y:x+y,range(1,101)))
- 4、enumerate函数
- enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中
- enumerate(iterable, start=0)
- 它的两个参数,一个是序列、迭代器或其他支持迭代对象;另一个是下标起始位置,默认情况从0开始
colors = ['red', 'yellow', 'green', 'black'] result = enumerate(colors) for i,j in result: print(i,j)
- 5、Zip函数
- zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表
- 当我们使用zip()函数时,如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
colors = ['red', 'yellow', 'green', 'black'] fruits = ['apple', 'pineapple', 'grapes', 'cherry'] for item in zip(colors,fruits): print(item) print(dict(zip(colors,fruits))) #将两个可迭代对象,一个作为key,一个作为value组成字典
- 6、Filter函数
- filter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表
- filter() 方法的语法: filter(function, iterable)
- function -- 判断函数。
- iterable -- 可迭代对象。
- 返回filter object 迭代器对象
a = [1, 3, 5, 7, 0, -1, -9, -4, -5, 8] def great_then_0(x): return x>0 L = filter(great_then_0,a) print(list(L)) #可以使用匿名函数代替判断函数 print(list(filter(lambda x:x>0,a))) #过滤掉列表中不及格的学生 a = [ {"name": "张三", "score": 66}, {"name": "李四", "score": 88}, {"name": "王五", "score": 90}, {"name": "陈六", "score": 56}, ] print(list(filter(lambda x:x.get('score')>60,a)))
这篇关于python之高级函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python