filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:

>>> def f(x): return x % 2 != 0 and x % 3 != 0

>>> filter(f, range(2, 25))

[5, 7, 11, 13, 17, 19, 23]

>>> def f(x): return x != ‘a‘

>>> filter(f, "abcdef")

‘bcdef‘

map(function, sequence) :对sequence中的item依次执行function(item),见执行结果组成一个List返回:

>>> def cube(x): return x*x*x

>>> map(cube, range(1, 11))

[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

>>> def cube(x) : return x + x

...

>>> map(cube , "abcde")

[‘aa‘, ‘bb‘, ‘cc‘, ‘dd‘, ‘ee‘]

另外map也支持多个sequence,这就要求function也支持相应数量的参数输入:

>>> def add(x, y): return x+y

>>> map(add, range(8), range(8))

[0, 2, 4, 6, 8, 10, 12, 14]

reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和:

>>> def add(x,y): return x + y

>>> reduce(add, range(1, 11))

55 (注:1+2+3+4+5+6+7+8+9+10)

>>> reduce(add, range(1, 11), 20)

75 (注:1+2+3+4+5+6+7+8+9+10+20)

lambda:这是Python支持一种有趣的语法,它允许你快速定义单行的最小函数,类似与C语言中的宏,这些叫做lambda的函数,是从LISP借用来的,可以用在任何需要函数的地方:

>>> g = lambda x: x * 2

>>> g(3)

6

>>> (lambda x: x * 2)(3)

6

我们也可以把filter map reduce 和lambda结合起来用,函数就可以简单的写成一行。

例如

kmpathes = filter(lambda kmpath: kmpath,

map(lambda kmpath: string.strip(kmpath),

string.split(l, ‘:‘)))

看起来麻烦,其实就像用语言来描述问题一样,非常优雅。

对 l 中的所有元素以‘:‘做分割,得出一个列表。对这个列表的每一个元素做字符串strip,形成一个列表。对这个列表的每一个元素做直接返回操作(这个地方可以加上过滤条件限制),最终获得一个字符串被‘:‘分割的列表,列表中的每一个字符串都做了strip,并可以对特殊字符串过滤。

原文:http://www.cnblogs.com/huangxiaohen/p/3841653.html

python有趣函数_python中有趣的函数相关推荐

  1. python中itemgetter函数_Python中的sorted函数以及operator.itemgetter函数

    operator模块提供的itemgetter函数用于获取对象的哪些维的数据,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子. a = [1,2,3] >>> b=op ...

  2. 如何用python生成软件_python中的生成器函数是如何工作的?

    1. python中的普通函数是怎么运行的? 当一个python函数在执行时,它会在相应的python栈帧上运行,栈帧表示程序运行时函数调用栈中的某一帧.想要获得某个函数相关的栈帧,则必须在调用这个函 ...

  3. python中range 函数_Python中的range函数

    本篇介绍range函数的特点及如何灵活运用. 工具/原料 Python3.7.5 Windows7环境 方法/步骤 1 查看range函数的帮助信息, range(stop) range(start, ...

  4. python继承super函数_Python中的super函数如何实现继承?

    本篇文章给大家带来的内容是关于Python 中的super函数如何实现继承?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Py 2.x 和 Py 3.x 中有一个很大的区别就是类,无 ...

  5. python getattr函数_Python中的getattr()函数详解

    在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么.它知道什么以及它能做什么.自省向程序员提供了极大的灵活性和控制力. 自省(introspection),在计算机编程领域里,是指在运行时来 ...

  6. python的empty函数_python中numpy.empty()函数的用法

    在使用python编程的过程中,想要快速的创建ndarray数组,可以使用numpy.empty()函数.numpy.empty()函数所创建的数组内所有元素均为空,没有实际意义,所以它也是创建数组最 ...

  7. python 一等公民_Python中一等公民——函数

    Python中"一等公民"--函数 Python的函数是"一等公民". 你可以将它们分配给变量,将它们存储在数据结构中,将它们作为参数传递给其他函数,甚至将它们 ...

  8. python方差函数_python 中的var()函数和cov函数用法-Go语言中文社区

    本文是学习多篇博客总结而得: numpy中var和cov函数求法和MATLAB中var和cov函数求法类似: 首先均值X,样本方差S,样本协方差C 公式分别为: 一.  MATLAB和Python中计 ...

  9. python里enumerate函数_python中的enumerate函数

    enumerate 函数用于遍历序列中的元素以及它们的下标: >>> for i,j in enumerate(('a','b','c')): print i,j 0 a 1 b 2 ...

  10. python函数def里面嵌套def_python 函数嵌套函数_Python中的嵌套函数

    python 函数嵌套函数 A nested function is simply a function within another function, and is sometimes calle ...

最新文章

  1. linux 软件安装基本操作
  2. SAP RETAIL MM42维护的采购价格,等同于ME11ME12的效果
  3. 大一计算机课程excel,大学计算机EXCEL讲课ppt课件.ppt
  4. 一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛,n年后有多少头小牛
  5. 音频重采样有什么用_最佳音频接口基本购买指南
  6. python字符串比较大小_Python 比较两个字符串大小
  7. GO语言打包ICO图标
  8. mysql bat备份_Windows下简单的Mysql备份BAT脚本分享
  9. c语言函数 参数,C语言函数的调用与参数
  10. linux串口编程(termios结构体说明)
  11. Python 图像处理 OpenCV (12): Roberts 算子、 Prewitt 算子、 Sobel 算子和 Laplacian 算子边缘检测技术
  12. OutLook设置管理规则和通知
  13. 手把手教你用移远M26/BC28的 MQTT协议 对接阿里云IoT平台
  14. 小白必看:IT转行需要注意什么,这几个问题很重要
  15. java swing开发窗体程序开发(四)MVC结构
  16. visit 安装说明
  17. STC大作业创新设计-乒乓游戏改进-代码
  18. 用迭代算法求非负数num的平方根。
  19. 文本框 html 哪些属性,html常见标签和属性
  20. 一次简单的性能优化诊断,聚簇因子过高导致全表扫描。

热门文章

  1. h5 server send event(sse)
  2. 自己常用的Linux命令总结
  3. 怎么隐藏桌面计算机名,Win7隐藏桌面所有图标
  4. 【离散数学中的数据结构与算法】六 排列与组合二
  5. 在工程中最常用的 vim使用技巧
  6. Mysql function(函数)
  7. CentOS安装cheat和tldr
  8. [BZOJ 5074] 小B的数字
  9. php解决与处理网站高并发 大流量访问的方法
  10. Android学习(二十)Notification通知栏