python 3.6.5

sample:  

 

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表

map(function, iterable, ...)
  • function -- 函数,有两个参数
  • iterable -- 一个或多个序列
 

Python 2.x 返回列表。

Python 3.x 返回迭代器

python 3.x 中map函数返回的是 迭代器对象,无法像python2.x 直接返回一个list对象,假如需要:list(map(func,iterable))

def func(num):    if isinstance(num, int):        num = num + 1    return num

print(list(map(func, [1, 2, 3, 4, 5, 6])))print(map(func, [1, 2, 3, 4, 5, 6]))# [2, 3, 4, 5, 6, 7]# < map object at 0x0000000002210C88 >

def func(num):    return num ** 2

iter_func = map(func, [1, 2, 3, 4, 5, 6, 7, 8, 9])print(iter_func)# < map object  at  0x00000000021D0D30 >for item in iter_func:    print(item, end=' ')print()

# 1# 4# 9# 16# 25# 36# 49# 64# 81

iter_func = map(func, [1, 2, 3, 4, 5, 6, 7, 8, 9])print(list(iter_func))# [1, 4, 9, 16, 25, 36, 49, 64, 81]

def fun(x, y, z):    return x * y * ziter_fun = map(fun, [1, 2, 3], [1, 2, 3], [1, 2, 3])print(iter_fun)# < map object at 0x0000000002220E48 >print(list(iter_fun))# [1, 8, 27]

s = [1, 2, 3]print(list(map(lambda x: x + 1, s)))# >>>[2,3,4]

str = "azthis is really a string example....wow!!!"print("Max character: " + max(str))# Max character: z

str = "this is a string example....wow!!!"print("Max character: " + max(str))# Max character: x

s = [1, 2, 3]print(list(map(lambda x, y, z: x * y * z, s, s, s)))# >>>[1,8,27]

匿名函数定义lambda x,y,z:x+y+z#x,y,z 是三个参数#x+y+z 是返回体,不需要return#配合使用可以让下横线简单明了、减少代码量

# max()# 方法返回给定参数的最大值,参数可以为序列。

lis_num = [1, 34, 6, 7, 3, 9]lis_set = [(1, 2), (2, 3), (3, 4)]dic = {'yanxiatingyu': 17,       'egon': 18,       'alex': 88,       'liu sir': 12       }print(max(lis_num))print(max(lis_set))

大量例子:

例01: 字符串联合,有默认值,也可以x=(lambda...)这种格式

>>> x = (lambda x="Boo",y="Too",z="Zoo": x+y+z)
>>> x("Foo")
'FooTooZoo'

例02: 和列表联合使用

>>> L = [lambda x:x**2,\
lambda x:x**3,\
lambda x:x**4]

>>> for f in L:
... print f(2)
...
4
8
16

也可以如下面这样调用

>>> print L[0](3)
9

例03: 和字典结合使用

>>> key = 'B'
>>> dic = { 'A': lambda: 2*2,\
... 'B': lambda: 2*4,\
... 'C': lambda: 2*8}
>>> dic[key]()
8

例04: 求最小值

>>> lower = lambda x,y: x if x<y else y
>>> lower('aa','ab')
'aa'

例05: 和map及list联合使用

>>> import sys
>>> showall = lambda x:list(map(sys.stdout.write,x))
>>> showall(['Jerry\n','Sherry\n','Alice\n'])
Jerry
Sherry
Alice

>>> showall(['Jerry','Sherry','Alice'])
JerrySherryAlice

等价于下面

>>> showall = lambda x: [sys.stdout.write(line) for line in x]
>>> showall(('I\t','Love\t','You!'))
I Love You![None, None, None]

例06: 在Tkinter中定义内联的callback函数

import sys
from Tkinter import Button,mainloop

x = Button(text='Press me',
command=(lambda:sys.stdout.write('Hello,World\n')))
x.pack()
x.mainloop()

>>>

Hello,World!

Hello,World!

例07: lambda和map联合使用,

>>>  out = lambda *x: sys.stdout.write(' '.join(map(str,x)))
>>> out('This','is','a','book!\n')
This is a book!

例08: 判断字符串是否以某个字母开头

>>> print (lambda x: x.startswith('B'))('Bob')
True

-----

>>> Names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach']
>>> B_Name= filter(lambda x: x.startswith('B'),Names)
>>> B_Name
['Bob', 'Barbara']

例09: lambda和map联合使用:

>>>  squares = map(lambda x:x**2,range(5))
>>> squares
[0, 1, 4, 9, 16]

例10. lambda和map,filter联合使用:

>>>  squares = map(lambda x:x**2,range(10))
>>> filters = filter(lambda x:x>5 and x<50,squares)
>>> filters
[9, 16, 25, 36, 49]

例11. lambda和sorted联合使用

#按death名单里面,按年龄来排序

#匿名函数的值返回给key,进来排序

>>> death = [ ('James',32),
('Alies',20),
('Wendy',25)]

>>> sorted(death,key=lambda age:age[1]) #按照第二个元素,索引为1排序
[('Alies', 20), ('Wendy', 25), ('James', 32)]

例12. lambda和reduce联合使用

>>> L = [1,2,3,4]
>>> sum = reduce(lambda x,y:x+y,L)
>>> sum
10

例13. 求2-50之间的素数

#素数:只能被1或被自己整除的数

>>> nums = range(2,50)
>>> for i in nums:
nums = filter(lambda x:x==i or x % i,nums)
>>> nums
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]

例14. 求两个列表元素的和

>>> a = [1,2,3,4]
>>> b = [5,6,7,8]
>>> map(lambda x,y:x+y, a,b)
[6, 8, 10, 12]

例15. 求字符串每个单词的长度

>>> sentence = "Welcome To Beijing!"
>>> words = sentence.split()

>>> lengths = map(lambda x:len(x),words)
>>> lengths
[7, 2, 8]

写成一行:

>>>  print map(lambda x:len(x),'Welcome To Beijing!'.split())

print(max(dic))print(max(dic.items()))print(max(dic.keys()))print(max(dic.values()))print(max(dic, key=lambda suibian: dic[suibian]))print(max(dic, key=lambda suibian: dic[suibian]))# 34# (3, 4)# yanxiatingyu# ('yanxiatingyu', 17)# yanxiatingyu# 88# alex# alex

lambda 参数1,参数2,: 代码
lambda x: x * xlambda x,y:x*y*xlambda x,y,z:x+y+z

python 3.6.5 map() max() lambda匿名函数的更多相关文章

  1. python基础(补充):lambda匿名函数,用了的,都说好!

    lambda函数又叫做"匿名函数".当你完成一件小工作时,直接使用该函数可以让你的工作得心应手. lambda函数介绍 在Python中,定义函数使用的是def关键字,但是通过la ...

  2. python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件

    上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 ...

  3. python六剑客:map()、lambda()、filter()、reduce()、推导类表、切片

    一:map():映射 map()有两个参数,一个函数,一个序列,序列中每一个元素都会做为参数传给前边的函数,然后生成新的列表, 第二个参数必须用一个序列:元祖,列表,字符串 >>> ...

  4. lambda匿名函数,sorted(),filter(),map(),递归函数

    1.lambda匿名函数 为了解决一些简单的需求而设计的一句话函数 #计算n的n次方 def func(n): return n**n print(func(10)) f = lambda n: n* ...

  5. Python 之父为什么嫌弃 lambda 匿名函数?

    Python 支持 lambda 匿名函数,其扩展的 BNF 表示法是lambda_expr ::= "lambda" [parameter_list] ":" ...

  6. Python 进阶 之 lambda 匿名函数

    lambda 是个匿名函数,通常用于简单判断或者处理,例如判断一个数的奇偶性,过滤字符串,逻辑运算等等. lambda表达式: >>>lambda x:x*x >>> ...

  7. Java中的lambda匿名函数使用

    Java中的lambda匿名函数使用 lambda匿名函数的使用是为了满足某些情况下需要临时定义函数,或者事先定义,需要时才使用.在python里面,lambda表达式的表达方式为:lambda 参数 ...

  8. lambda 匿名函数

    # 普通python函数 def func(a,b,c): return a+b+c print func(1,2,3) # 返回值为6 # lambda匿名函数 f = lambda a,b,c:a ...

  9. lambda匿名函数和他的小伙伴(处理大量数据的时候用到)

    lambda匿名函数 主要是为了解决一些简单的需求而设计的一句话函数 #计算n的n次方 def func(n): return n**n f = lambda n : n ** n 语法: 函数名 = ...

随机推荐

  1. node-sass:npm install node-sass --save

    从git上拉下来的项目,要先安装依赖, 再运行. 缺少node-sass:npm install node-sass --save

  2. 遍历DOM树,获取子节点

    获取子节点的方法有:  方法  说明  children()  选取子节点,可以带过滤参数.但只能选择子节点,不能选择孙子节点.  find()  选取子节点,可以带过滤参数.可以选择子节点及孙子节点 ...

  3. 使用__slots__限制实例的属性

    1.给实例化的对象添加新的属性 看下面一段代码,然后给实例化的对象s添加或者修改属性 class Student(object): name='china' s = Student() s1=Stud ...

  4. 利用ant脚本 自动构建svn增量/全量 系统程序升级包【转】

    引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文 ...

  5. 吴裕雄 16-MySQL UNION 操作符

    描述MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中.多个 SELECT 语句会删除重复的数据. 语法MySQL UNION 操作符语法格式:SELECT ...

  6. PCA 降维

    http://f.dataguru.cn/spark-751832-1-1.html 我们可以利用PCA算法将向量的维数降低,从而实现特征转化.具体原理在<机器学习>课程中有详细的讲述.故 ...

  7. Transparency Sort Mode

    [Transparency Sort Mode]  Transparency Sort Mode, which allows you to control how Sprites are sorted ...

  8. cdnbest如何检查https证书是否有效

    注意: 用此方法检查ssl证书是否有效,此帐号下必须有有效的cdn节点,因为这个证书是要通过底层的cdn节点来检测的 1. 在站点设置中如下图点打开添加ssl证书 2.加完证书后点检查,打勾就表示证书 ...

  9. dubbo 实战

    dubbo 官网:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html dubbo-admin 下载 : https://github.co ...

  10. Appium1.6,安装WebDriverAgent(WDA)

    前提说明:Appium1.6通过WebDriverAgent来操作iOS,所以需要在Appium下安装一份WebDriverAgent,并且将程序安装到iOS真机上 (如果是模拟器不需要这步骤)   ...