python---------匿名函数(map,filter,zip..)

python---------匿名函数

一、匿名函数:也叫lambda表达式

1.匿名函数的核心:一些简单的需要用函数去解决的问题,匿名函数的函数体只有一行

2.参数可以有多个,用逗号隔开

3.返回值和正常的函数一样可以是任意的数据类型

二、匿名函数练习

1 请把下面的函数转换成匿名函数
2 def  add(x,y)
3         return x+y
4 add()
5 结果:
6 sum1=lambda x,y:x+y
7 print(sum1(5,8))

1 dic = {‘k1‘:50,‘k2‘:80,‘k3‘:90}
2 # func= lambda k:dic[k]
3 # print(max(dic,key=func))
4 print(max(dic,key = lambda k:dic[k]))#上面两句就相当于下面一句

比两个数的大小

1 3.map方法
2 l=[1,2,3,4]
3 # def func(x):
4 #     return x*x
5 # print(list(map(func,l)))
6
7 print(list(map(lambda x:x*x,l)))

map方法的应用

1 l=[15,24,31,14]
2 # def func(x):
3 #         return x>20
4 # print(list(filter(func,l)))
5
6 print(list(filter(lambda x:x>20,l)))

filter函数的小应用

 1 # 方法一
 2 t1=((‘a‘),(‘b‘))
 3 t2=((‘c‘),(‘d‘))
 4 # print(list(zip(t1,t2)))
 5 print(list(map(lambda t:{t[0],t[1]},zip(t1,t2))))
 6
 7 # 方法二
 8 print(list([{i,j} for i,j in zip(t1,t2)]))
 9
10 #方法三
11 func = lambda t1,t2:[{i,j} for i,j in zip(t1,t2)]
12 ret = func(t1,t2)
13 print(ret)

5.现有两个元组((‘a‘),(‘b‘)),((‘c‘),(‘d‘)), 请使用python中匿名函数生成列表[{‘a‘:‘c‘},{‘b‘:‘d‘}]

三、列表推导式

1 6.30以内所有被3整除的数
2 print(list([i for i in range(30) if i%3==0]))

30以内能被3整除的数

三、字典推倒式

例一:将一个字典的key和value对调

1 mcase = {‘a‘: 10, ‘b‘: 34}
2 res1 = {i:mcase[i] for i in mcase}
3 res={mcase[i]:i for i in mcase }
4 print(res1)
5 print(res)

例二:合并大小写对应的value值,将k统一成小写

1 mcase = {‘a‘:10,‘b‘:34,‘A‘:7}
2 res = {i.lower():mcase.get(i.lower(),0)+mcase.get(i.upper(),0) for i in mcase}
3 print(res)

四、集合推倒式

例:计算列表中每个值的平方,自带去重功能

1 l=[5,-5,1,2,5]
2 print({i**2 for i in l})

原文地址:https://www.cnblogs.com/maaosheng/p/11619059.html

时间: 2024-10-08 18:04:39

python---------匿名函数(map,filter,zip..)的相关文章

Python---高级函数map, filter, zip, enumerate等的用法

今天看自然语言处理这本书的时候,被这里的高级函数的概念吸引了,因为我觉得所有的函数都只是函数而已,是为了实现特定功能而实现的,不应该有高级,低级之分啊!不过了解之后,发现这几个函数确实是有点高级,非常好用,所以在这里做一个简单的总结. 1. Haskell:之前以为它是一个函数,其实它是一个统称.Haskell 中的函数可以作为参数和回传值传来传去,这样的函数就被称作高阶函数. 2. map(function, list): 就是对list 中的每一个元素都调用function函数进行处理,返回

小学生都能学会的python(<lamda匿名函数,sorted(),filter(),map(),递归函数>)

小学生都能学会的python(<<lamda匿名函数,sorted(),filter(),map(),递归函数,二分法>> 1. lambda 匿名函数 lambda 参数: 返回值 注意: 1. 函数的参数可以有多个. 多个参数之间?逗号隔开2. 匿名函数不管多复杂. 只能写??, 且逻辑结束后直接返回数据3. 返回值和正常的函数?样, 可以是任意数据类型 # def fang(x): # return x**2 # # # ret = fang(5) # # print(ret

Python— 匿名函数

匿名函数 匿名函数:为了解决那些功能很简单的需求而设计的  “一句话函数” #初始代码 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc = lambda n:n**n print(calc(10)) 上图是对calc这个匿名函数的分析 # 关于匿名函数格式的说明 函数名 = lambda 参数 :返回值(相当于函数体) # 参数可以有多个,用逗号隔开 # 匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值 # 返回值和

复习 Python 匿名函数 内建函数

lamba 补充: 如图: 举例: 上例中的reduce用法: 内建函数 如图,有137的函数.类等等 类的单词首字母是大写的 查看函数或者类的方法: 常用的内建函数: 1.返回数字的绝对值 查看内置函数方法: 所以: 2.取列表最大最小值 取大小值内建函数方法: 比较多个参数: 比较数字大小: 常用内建函数 len() 函数 字符串.元组.列表.字典都可以.一下为字典例子: divmod() 内建函数: 由说明可以看出,这个函数的作用是返回两个数字的商和余数. pow()内建函数: 当两个参数

python 匿名函数和递归函数

匿名函数lambda 匿名函数:lambda  x,y:x+y 上述解释:x,y分别是函数的函数,x+y是函数的返回值 匿名函数的命名规则,用lamdba 关键字标识,冒号(:)左侧表示函数接收的参数(a,b) ,冒号(:)右侧表示函数的返回值(a+b). 因为lamdba在创建时不需要命名,所以,叫匿名函数 等同于普通函数: def test(x,y): return x+y 匿名函数只是没有函数名,只要是配合内置函数使用 示例1: # filter##过滤(将布尔值为True的结果过滤出来)

python几个特别函数map filter reduce lambda

lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x): return x**2 print f(4) Python中使用lambda的话,写成这样 g = lambda x : x**2 print g(4) lambda表达式在很多编程语言都有对应的实现.比如C#: var g = x => x**2 Console.WriteLine(g(4)) 那么,lambda表达式有什么用处呢?很多人提出了质疑,lambda和普通的函数相比,就是省去了函数名称

python中 Lambda,Map,Filter,Itertools,Generator高级函数的用法

Lambda 函数 Lambda 函数是一种比较小的匿名函数--匿名是指它实际上没有函数名. Python 函数通常使用 def a_function_name() 样式来定义,但对于 lambda 函数,我们根本没为它命名.这是因为 lambda 函数的功能是执行某种简单的表达式或运算,而无需完全定义函数. lambda 函数可以使用任意数量的参数,但表达式只能有一个. x = lambda a, b : a * b print(x(5, 6)) # prints '30' x = lambd

python 内置函数 map filter reduce

map(函数名,可遍历迭代的对象) # 列组元素全加 10 # map(需要做什么的函数,遍历迭代对象)函数 map()遍历序列得到一个列表,列表的序号和个数和原来一样 l = [2,3,4,5,6,7,8] t = list(map(lambda x:x+10,l)) #遍历 l,l 里的元素全加10 map得到的结果是可迭代对象所以要list print(t) #===>[12, 13, 14, 15, 16, 17, 18] filter(函数名,可遍历迭代的对象) # filter(返回

Python匿名函数详解

转载自杰瑞的专栏 lambda这个名称来自于LISP,而LISP则是从lambda calculus(一种符号逻辑形式)取这个名称的.在Python中, lambda作为一个关键字,作为引入表达式的语法.想比较def函数,lambda是单一的表达式,而不是语句块! 你仅能够在lambda中封装有限的业务逻辑,这样设计的目的:让lambda纯粹为了编写简单的函数而设计,def则 专注于处理更大的业务. 在编程语言中,函数的应用: 1. 代码块重复,这时候必须考虑用到函数,降低程序的冗余度 2. 代