本文主要是介绍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将函数作用在一个列表上,映射函数接收了两个参数,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之高级函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!