python高阶函数和匿名函数

简介:

1.高阶函数

把函数当成一个参数的函数


例子:

abs函数作为一个参数

def add(a,b,f):

   return f(a) + f(b)

print (add(10,-10,abs))


结果:

20


常用内置高阶函数

1)map()函数:接收一个函数和列表,并将列表的值传给函数,最后将结果以列表形式输出

例子:

def power(x):

   return x*x

list1=[1,2,3,4,5,6,7,8,9,10]

print map(power,list1)


结果:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]


2)reduce()函数:和map()类似,也是内置高阶函数,但函数f需接收两个变量;第二次调用把list中第一次处理的值(list中第1和第2个参数之和),当做第1个参数继续,依次类推

例子:

def add(x,y):

   return x+y

list1=[1,2,3,4,5,6]

print reduce(add,list1)


结果:

21


3)filter()函数:类似map(),根据f函数返回的True或者False,过滤值,最后输出列表

例子:

def is_even(x):

   return x%== 0

list1 = [1,2,3,4,5,6,7,8,9,10]

print filter(is_even,list1)


结果:

[2, 4, 6, 8, 10]



4) sorted()函数:返回一个经过排序的列表

sorted(...)

    sorted(iterable, cmp=None, key=None,reverse=False) --> new sorted list


三个可选参数:

cmp指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数。默认值为None

key:指定接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None

reverse是一个布尔值。如果设置为True,列表元素将被倒序排列。


例子:

mm = dict(a=1,b=3,c=2)

print (mm)

for in mm:

   print (i)

for in mm.iteritems():

   print(j)

test = sorted(mm.iteritems(), key=lambda x:x[1])

print(test)


结果:

{'a': 1, 'c': 2, 'b': 3}

a

c

b

('a', 1)

('c', 2)

('b', 3)

[('a', 1), ('c', 2), ('b', 3)]


说明:lambda x:x[1] 为匿名函数


2.匿名函数

没有名字,可以快速定义单行的最小函数


例子:

f = lambda x,y:x*y

print f(10,20)


结果:

200










本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1978596,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
452 2
|
7月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
1334 1
|
7月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
382 0
|
8月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
370 101
|
8月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
302 99
|
8月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
498 98
|
8月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
9月前
|
Python
Python 函数定义
Python 函数定义
867 155
|
10月前
|
PHP Python
Python format()函数高级字符串格式化详解
在 Python 中,字符串格式化是一个重要的主题,format() 函数作为一种灵活且强大的字符串格式化方法,被广泛应用。format() 函数不仅能实现基本的插入变量,还支持更多高级的格式化功能,包括数字格式、对齐、填充、日期时间格式、嵌套字段等。 今天我们将深入解析 format() 函数的高级用法,帮助你在实际编程中更高效地处理字符串格式化。
733 0
|
8月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
1234 0

推荐镜像

更多