1.lambda:使用lambda表达式可以定义一个匿名函数

  lambda表达式是一种简洁格式的函数。该表达式不是正常的函数结构,而是属于表达式的类型

  (1)基本格式:

lambda 参数,参数...:函数功能代码
如:lambda x,y:x + y 获取2个值的和的lambda函数

  例:

#方式1.声明一个简单的lambda表达式
mylamb = lambda x,y:x+y
#调用函数
result = mylamb(4,5)
print(result)

  (2)带分支格式:

lambda 参数,参数... :值1  if 条件表达式  else 值2
如:lambda sex : '有胡子' if sex == 'man' else '没胡子'

  例:

#方式2.声明一个带有分支的lambda表达式
mylamb= lambda sex : '有胡子' if sex == 'man' else '没胡子'
#调用函数
result = mylamb('woman')
print(result)

  (3)调用函数格式:

lambda 参数,参数...:其他函数(...)
如:lambda x:type(x)

  例:

#方式3.声明一个调用函数的lambda表达式
mylamb = lambda x:type(x)
#调用函数
result = mylamb('拾元')
print(result)

2.filter()对于序列中的元素进行筛选,最终获取符合条件的序列

    

  例:filter(处理函数,可迭代对象)

    #filter第一个参数为空,将获取原来序列
def findTrue(num):
if num > 0:
return True
else:
return False
nums = [1,2,3,-2,-3,-1,3]
result = filter(findTrue,nums)
for i in result:
print(i)
print(result)

  结果为:

1
2
3
3
<filter object at 0x0000000001DC6CF8>

3.map():遍历序列,对序列中每个元素进行操作,最终获取新的序列。

    

  例1: map(处理函数,可迭代对象,可迭代对象,...)

li = [11, 22, 33]
new_list = map(lambda a: a + 100, li)
for i in new_list:
print(i)
print(new_list)

  结果为:

111
122
133
<map object at 0x0000000001E05588>

  例2:

li = [11, 22, 33]
sl = [1, 2, 3]
new_list = map(lambda a, b: a + b, li, sl)
for i in new_list:
print(i)
print(new_list)

  结果为:

12
24
36
<map object at 0x0000000001DF6A20>

4.reduce()内建函数是一个二元操作函数

  用来将一个数据集合(链表,元组等)中的所有数据进行function函数操作:用传给reduce()的函数 function()(必须是一个二元操作函数)对数据集合中的第1,2个数据进行操作,得到的结果再与第三个数据使用function()函数运算。如此迭代,直到最后得到一个结果。

    

  例:格式:reduce(function, iterable[, initializer]),返回值是一个单值.

def add(x,y):
  return x+y
sum = reduce(add,[1,2,3,4,5,6,7,8,9,10])
print(sum)

# 结果为:55

注:在python 3.0.0.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce。

  例2:

l = []
def add(x,y):
  l.append((x,y))
  end = x + y
  return end
sum = reduce(add,[1,2,3,4,5,6,7,8,9,10])
print(sum)
print(l)

  结果为:

55
[(1, 2), (3, 3), (6, 4), (10, 5), (15, 6), (21, 7), (28, 8), (36, 9), (45, 10)]

  reduce(function(),data) 函数对作为其参数的函数function()是有要求的,要求这个函数function()能接受两个参数。第一个参数的值是前期计算积累的值,而第二个参数的值是 reduce() 函数参数中的data序列的下一个元素。其实 reduce 函数中还有第三个可选的参数初始值,如果这个参数为空则初始值默认为序列的第一个元素,所以上面可以看到第一次调用这个函数是以序列的第一个和第二个元素作为参数的。最终,最后一次调用返回的值作为 reduce 函数的返回值。

												

Python中特殊函数和表达式lambda,filter,map,reduce的更多相关文章

  1. lambda,filter,map,reduce

    # lambda,filter,map,reduce from functools import reduce print('返回一个迭代器') print((x) for x in range(5) ...

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

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

  3. Python高级特性: 函数编程 lambda, filter,map,reduce

    一.概述 Python是一门多范式的编程语言,它同时支持过程式.面向对象和函数式的编程范式.因此,在Python中提供了很多符合 函数式编程 风格的特性和工具. 以下是对 Python中的函数式编程 ...

  4. python中的zip、lambda、map操作

    python 中有几个比较酷炫的操作,比如:zip.lambda.map 一.zip操作 zip字面意思:拉链.这么来记,把几个东西扔到一个包里,拉上拉链,就算打包好了.通俗点讲,就是把第1个参数.与 ...

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

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

  6. [转]Python 中的 lambda,filter,map,reduce,apply

    1. lambda 1. 基本形式: 函数名=lambda args1,args2,...,argsn:expression与C语言中的宏定义类似 2. Code isodd = lambda x: ...

  7. Python基础灬高阶函数(lambda,filter,map,reduce,zip)

    高阶函数 lambda函数 关键字lambda表示匿名函数,当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. lambda函数省略函数名,冒号前为参数,冒号后函数体. # ...

  8. python 函数中的递归、lambda 、map reduce 等详解

    举例说明 #例1: ###递归函数求和 from traitlets.traitlets import Instance def mysum(L): print(L) if not L: return ...

  9. Python 函数lambda(), filter(), map(), reduce()

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

随机推荐

  1. /src/log4j.xml

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration S ...

  2. css图标库 font-awesome.min.css

    下载font-awesome-4.4.0 同时引入font-awesome-4.4.0.min.css 通过<i class='fa fa-sign-out'></i>生成图片 ...

  3. js获取url传值的方法

    这篇文章主要介绍了js获取url传值的方法,实例分析了字符串分割与正则分析两种方法,并补充了一个基于正则匹配实现的js获取url的get传值函数,需要的朋友可以参考下 js获取url参数值: inde ...

  4. 用jQuery实现轮播图效果,js中的排他思想

    ---恢复内容开始--- jQuery实现轮播图不用单独加载. 思路: a. 通过$("#id名");选择需要的一类标签,获得一个伪数组 b.由于是伪数组的原因,而对数组的处理最多 ...

  5. justify-content & align-items & align-content

    [justify-content & align-items & align-content] 三个属性均作用于container. justify-content用于控制main-a ...

  6. veil-catapult

    veil-catapult进行payload投放,直接使payload在内存中执行. kaliIP:192.168.1.119 目标IP:192.168.1.121 1.powershell powe ...

  7. 二叉树的镜像(python)

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

  8. Error in building opencv with ffmpeg

    I installed ffmpeg according to this article. ffmpeg installation was ok. Now I build opencv with ff ...

  9. 201. Bitwise AND of Numbers Range (Bit)

    Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND(按位与) of all nu ...

  10. 【python】初识python

    [命名规范] 模块名:小写字母,单词之间用_分割:例如:ad_stats.py 包名:和模块名一样 类名:单词首字母大写:例如:ConfigUtil 全局变量名:大写字母,单词之间用_分割:例如:NU ...