set|lambda|reduce】的更多相关文章

filter用法 filter(func,seq) 将seq的元素逐一代入func,通过func的返回值来判断是保留还是过滤 >>> def foo(x): return x>3 >>> filter(foo,range(6)) [4, 5] >>> filter(lambda x:x>3,range(6))[4, 5] #注意只需要写函数名,不带参数 map用法map(func/lambda,seq) 通过函数对队列中的每个元素进行操作,…
学完这几个优雅的内建函数,就可以做一些有趣的小练习来激发兴趣了.而python最大的好处便是简洁,看下边要求 用1行代码求 1! + 2! + 3! + ... + 10! 求阶乘 reduce函数用来做累积累和 def fact(n) reduce(lambda x, y: x * y, range(1, n + 1)) 精简成lambda函数 lambda n: reduce(lambda x, y: x * y, range(1, n + 1)) 映射列表,求1到10的阶乘,返回一个列表…
1.map(function,sequence) 对sequence 中的item依次执行function(item), 见执行结果组成一个List返回 例如: #!/usr/bin/python # -*- coding: utf-8 -*- def add100(x): return x+100 hh = [10,11,12] print(map(add100,hh)) def abc(a,b,c): return a*1000+b*100+c list1 = [11,22,33] list…
1.lambda的用法 sum = lambda arg1,arg2:arg1+arg2 sum(10,20) --->30 | | 实际上是def sum(arg1,arg2) return arg1+arg2 2.reduce的用法 l = [1,2,3,4,5] print(reduce(lambda x,y:x+y,l,10))   //lambda上面有用法,第二的参数是l的数组,第三个为x的起始值 -->25 3.filter的用法    过滤器 l = [100,20,24,50…
lambda类似于C里面的#define或者C++里面的内联函数(inline),一般都小巧精悍 >>> g=lambda x,y:x*y >>> g(3,7) 21 >>> reduce为逐次操作list里的每项,接收的参数为2个,最后返回的为一个结果 >>> def myadd(x,y): ... return x+y ... >>> sum=reduce(myadd,(1,2,3)) >>>…
#!/usr/bin/python a=set([i for i in range(4,8)]) b=set([i for i in range(5,12)]) c= sorted(a & b) print c print reduce(lambda x,y:(x-1)*y,c) def func_1(x,y): return (x-1)*y print reduce(func_1,c)…
一.lambda函数即匿名函数,和普通的函数相比,就是省去了函数名称而已: lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边是函数体的返回值 g = lambda x,y : x+yprint g(1,2) 与函数等同: def f(x,y): return x+yprint f(1,2) 二.lambda函数作用: 1. 使用Python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简. 2. 对于一些抽象的,无需复用的函数,使用lambda不需要考虑…
前因 因为 Guido 先生讨厌 reduce.(Because Guido hates it. ) 详细过程请翻阅原文:http://www.artima.com/forums/flat.jsp?forum=106&thread=98196 Guido大大原计划把 lambda, reduce 都干掉. 最后只干掉了 reduce 使用 首先在python3版本中,直接使用reduce()的话,系统会报错,提示不存在reduce()函数. 在Python 3里,reduce() 函数已经被从全…
    2014年2月中旬,我上升到挑战python英雄榜第3名.这是我寒假修炼算法的成果之一.来一下总结吧! Linux的创始人Linus Torvalds在一次演讲中有一段涉及“什么才是优秀程序员”的话: “烂程序员关心的是代码.好程序员关心的是数据结构和它们之间的关系.” 由这句话的启发开始,加上我越来越觉得自己编程能力不足,码代码经常要重构,逻辑思维不过细腻谨慎.正是过于关注代码,完成率所致.我已经学过C/C++/nasm/java/python/html/js/jq/shell等等语言…
一.控制流 从接触面向过程语言开始,使用控制流编程的概念已是司空见惯. if (condition) { // do something } else { // do something else } 分支和循环是最常见的控制流形式.由于控制条件的存在,总有一部分代码片段会执行,另一部分不会执行. 在控制流中,想要进行数据传递,最关键的是借助于变量保存中间状态.因此,控制流编程看起来是将数据嵌套在控制流内的编程方式. 使用变量保存程序状态有个很大的优势.通过变量缓存,可以将编程任务划分为不同的阶…