python 3.6.5 map() max() lambda匿名函数
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匿名函数的更多相关文章
- python基础(补充):lambda匿名函数,用了的,都说好!
lambda函数又叫做"匿名函数".当你完成一件小工作时,直接使用该函数可以让你的工作得心应手. lambda函数介绍 在Python中,定义函数使用的是def关键字,但是通过la ...
- python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件
上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 ...
- python六剑客:map()、lambda()、filter()、reduce()、推导类表、切片
一:map():映射 map()有两个参数,一个函数,一个序列,序列中每一个元素都会做为参数传给前边的函数,然后生成新的列表, 第二个参数必须用一个序列:元祖,列表,字符串 >>> ...
- lambda匿名函数,sorted(),filter(),map(),递归函数
1.lambda匿名函数 为了解决一些简单的需求而设计的一句话函数 #计算n的n次方 def func(n): return n**n print(func(10)) f = lambda n: n* ...
- Python 之父为什么嫌弃 lambda 匿名函数?
Python 支持 lambda 匿名函数,其扩展的 BNF 表示法是lambda_expr ::= "lambda" [parameter_list] ":" ...
- Python 进阶 之 lambda 匿名函数
lambda 是个匿名函数,通常用于简单判断或者处理,例如判断一个数的奇偶性,过滤字符串,逻辑运算等等. lambda表达式: >>>lambda x:x*x >>> ...
- Java中的lambda匿名函数使用
Java中的lambda匿名函数使用 lambda匿名函数的使用是为了满足某些情况下需要临时定义函数,或者事先定义,需要时才使用.在python里面,lambda表达式的表达方式为:lambda 参数 ...
- lambda 匿名函数
# 普通python函数 def func(a,b,c): return a+b+c print func(1,2,3) # 返回值为6 # lambda匿名函数 f = lambda a,b,c:a ...
- lambda匿名函数和他的小伙伴(处理大量数据的时候用到)
lambda匿名函数 主要是为了解决一些简单的需求而设计的一句话函数 #计算n的n次方 def func(n): return n**n f = lambda n : n ** n 语法: 函数名 = ...
随机推荐
- python 深拷贝、浅拷贝、引用
(1)直接赋值,传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变(2)copy浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变(3)深拷贝,包含对象里面的子对象的拷贝,所以原始对象的 ...
- 关于PHP Notice: A non well formed numeric value encountered, 你知道多少
---------------------------------------------------------------------------------------------- A non ...
- Android内存优化相关
Android的内存管理方式 Android系统内存分配与回收方式 一个APP通常就是一个进程对应一个虚拟机 GC只在Heap剩余空间不够时才去垃圾回收 GC触发时,所有线程都会被暂停!!! APP内 ...
- 简单全局HOOK拦截大部分键盘消息
前言:学习HOOK中,万一老师讲解HOOK入门教程:http://www.cnblogs.com/del/category/124150.html http://www.cnblogs.com/del ...
- Unity3d资源管理分析
原创链接:http://blog.csdn.net/ox_thedarkness/article/details/9197453 分离资源管理 参考 1.Unity3D占用内存太大的解决方法 - 星尘 ...
- swift 获取Documnets 的路径 和 CGD 延迟
// CGD 延迟 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64( * NSEC_PER_SEC)), dispatch_get_main ...
- 判断用户 是用的电脑还是手机 判断 是安卓还是IOS
$(function(){ var Terminal = { // 辨别移动终端类型 platform: function () { var u = navigator.userAgent, app ...
- java-学习8
方法的声明及使用 public class function { public static void main(String[] args) { printInfo();//调用printInfo( ...
- R各种数据类型的转换
1.列表转化为数据框 df <- data.frame(matrix(unlist(列表), nrow=132, byrow=T),stringsAsFactors=FALSE)
- 安装三代组装canu、smartdenovo、wtdbg及矫正软件Racon、Nanopolish的安装
1)三代组装软件 ------------------------------------------------------------------canu--------------------- ...