一、filter(function, sequence)
对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回: def f(x):
return x % 2 != 0 and x % 3 != 0 print filter(f, range(2, 25))
#[5, 7, 11, 13, 17, 19, 23] def f1(x):
return x != 'a' print filter(f1, "abcdef") #bcdef
二、map(function, sequence)
对sequence中的item依次执行function(item),见执行结果组成一个List返回: def cube(x):
return x*x*x
print map(cube, range(1, 11))
#[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000] def cube1(x):
return x + x
print map(cube1 , "abcde")
#['aa', 'bb', 'cc', 'dd', 'ee'] 另外map也支持多个sequence,这就要求function也支持相应数量的参数输入:
def add(x, y):
return x+y
print map(add, range(8), range(8))
#[0, 2, 4, 6, 8, 10, 12, 14] status_ids = map(lambda x:x.get('status__id'), snaps) 三、reduce(function, sequence, starting_value)
对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和:
def add(x,y):
return x + y
print reduce(add, range(1, 11))
注:1+2+3+4+5+6+7+8+9+10 reduce(add, range(1, 11), 20)
注:1+2+3+4+5+6+7+8+9+10+20 四、lambda
这是Python支持一种有趣的语法,它允许你快速定义单行的最小函数,类似与C语言中的宏,这些叫做lambda的函数,是从LISP借用来的,可以用在任何需要函数的地方:
g = lambda x: x * 2
print g(3) #6 print (lambda x: x * 2)(3) #

五、sorted

aa = [
{'name':'zhangsan', 'price':20.01, 'date':'2015-01-09T01:00:00Z'},
{'name':'lisi', 'price':10.01, 'date':'2013-01-09T01:00:00Z'},
{'name':'wangwu', 'price':0.01, 'date':'2012-01-09T01:00:00Z'}
]
sorted(aa, key=lambda s:s.amount) #对list进行排序
sorted(aa, key=lambda s:s.amount, reverse=True) aa = [<Symbol: Symbol object>, <Symbol: Symbol object>, <Symbol: Symbol object>]
sorted(aa, key=lambda s:s["date"]) #对Symbol对象进行排序,date为Symbol属性
sorted(aa, key=lambda s:s["date"], reverse=True) 六、for特殊用法
for i in range(4):
print i se=[x**2 for x in range(4)]
print se #[0, 1, 4, 9] se=[x**2 for x in range(10) if not x%2]
print se #[0, 4, 16, 36, 64]

Python特殊语法--filter、map、reduce、lambda的更多相关文章

  1. filter,map,reduce,lambda(python3)

    1.filter filter(function,sequence) 对sequence中的item依次执行function(item),将执行的结果为True(符合函数判断)的item组成一个lis ...

  2. Python2.7学习笔记-定义函数、filter/map/reduce/lambda

    我把写的代码直接贴在下面了,注释的不是很仔细,主要是为了自己复习时方便查找,并不适合没有接触过python的人看,其实我也是初学者. #定义函数 def my_abs(x): if x>=0: ...

  3. Python中特殊函数和表达式 filter,map,reduce,lambda

    1. filter 官方解释:filter(function or None, sequence) -> list, tuple, or string Return those items of ...

  4. Python中 filter | map | reduce | lambda的用法

      1.filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tupl ...

  5. python: filter, map, reduce, lambda

    filter built-in function filter(f,sequence) filter can apply the function f to each element of seque ...

  6. Python之匿名函数(filter,map,reduce)

    参考博客:Python匿名函数详解--http://blog.csdn.net/csdnstudent/article/details/40112803 Python内建函数之——filter,map ...

  7. Python学习(五)函数 —— 内置函数 lambda filter map reduce

    Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

  8. Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

    Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是 ...

  9. Python内置函数之filter map reduce

    Python内置函数之filter map reduce 2013-06-04 Posted by yeho Python内置了一些非常有趣.有用的函数,如:filter.map.reduce,都是对 ...

  10. [python基础知识]python内置函数map/reduce/filter

    python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法) ...

随机推荐

  1. 【背景建模】SOBS

    SOBS(self-Organizing through artificial neural networks)是一种基于自组织神经网络的背景差分算法,主要是借鉴神经网络的特性,一个网络输入节点,对应 ...

  2. Bootstrap左侧下拉三级菜单

    在线实例 效果一 效果二 效果三 使用方法 <script src="/api/jq/BootstrapCaidan/js/metismenu.js"></scr ...

  3. ZeroClipboard – 轻松实现复制文本到剪贴板功能

    ZeroClipboard 库提供了一种把文本复制到剪贴板的简单方法.Zero 表示该库是不可见的,用户界面则完全取决于你. 该库完全兼容 Flash Player 10.0.0 或以上版本,这就要求 ...

  4. javascript使浏览器关闭前弹出确认

    当用户关闭页面时,弹出对话框,让用户确认是否关闭,选择确定则页面关闭,否则页面不关闭. 效果体验:http://keleyi.com/keleyi/phtml/js/index.htm 完整代码: & ...

  5. kindeditor-在线编辑器

    写在前面的话: 今天是第一次写博客,很值得纪念,希望能够和大神们一起交流技术,一起进步...来自<一只有梦想的前端小白> 最近项目中需要实现图文混排的效果,所以研究了下在线编辑器-- ki ...

  6. Box2D自定义重力

    需要给刚体添加一个自定义的属性:m_customGravity,这样就可以动态的修改每一个刚体自定义的重力,查找box2d源码大约在5486行,加上红色的一句代码 b2Island.prototype ...

  7. CSS常用样式(二)

    一.边框样式 1.border:复合属性.设置对象边框的特性. 取值: border-width: 设置或检索对象边框宽度. border-style: 设置或检索对象边框样式. border-col ...

  8. Android Tips: 打电话和发短信

    利用Android打电话非常简单,直接调用Android内在的电话功能就可以了. btnDail.setOnClickListener(new OnClickListener(){ @Override ...

  9. Sharepoint 2010 工作流启动时处理出错

    在Sharepoint 2010 中使用Sharepoint 2010 designer做了一个工作流: 运行工作流时,当主办工程师是“张三”的时候,工作流一启动就报错. -------------- ...

  10. 定制Android透明按钮

    自己在学习和做例子的过程中,常常会需要按钮,由于系统自带按钮样式不太好看,所以需要我们自己来定制项目得按钮,我常常采用2中方法: 1.是制作9-patch的图片,这样能够匹配文字内容的长短. 2.是指 ...