python的reduce,map,zip和filter函数

一、    reduce(function,Iterable),它的形式和map()函数一样。不过参数function必须有两个参数。

reduce()函数作用是:把结果继续和序列的下一个元素做累积计算。

例,
    
    >>>def add(x, y) :            # 两数相加
    ...     return x + y
    ...
    >>> reduce(add, [1,2,3,4,5])   # 计算列表和:1+2+3+4+5
    15
    >>> reduce(lambda x, y: x+y, [1,2,3,4,5])  # 使用 lambda 匿名函数
    15

二、    map(function,Iterable)是将列表中的每一个元素作用于函数。

1.返回值:

Python 2.x 返回列表。

Python 3.x 返回迭代器。
所以python3中获取map返回值的两个基本方法:
    ①print(list(map(f,Iter)))      #这里的f代表函数,Iter代表可迭代对象。
    ②使用 for 循环。

例,
    ①m = map(lambda x : x + 1, [1, 2, 3])
      print(list(m))   #结果为:[5, 7, 9]

②提供了两个列表,对相同位置的列表数据进行相加
      >>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
      [3, 7, 11, 15, 19]

三、    zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象。
例,
    lt1 = [‘a‘, ‘b‘, ‘c‘]
    lt2 = [1, 2, 3]
    lt3 = [‘A‘, ‘B‘, ‘C‘]
    result = list(zip(lt1, lt2, lt3))
    print(result)   #输出结果:[(‘a‘, 1, ‘A‘), (‘b‘, 2, ‘B‘), (‘c‘, 3, ‘C‘)]

四、    filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
    filter接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
    语法:filter(function, Iterableble)

例,
    func = lambda x : x % 2 == 1
    print(list(filter(func, [1,2,3]))) #输出结果:[1, 3]

原文地址:https://www.cnblogs.com/Downtime/p/8441048.html

时间: 2024-10-17 09:30:29

python的reduce,map,zip和filter函数的相关文章

Python常用内置函数整理(lambda,reduce,zip,filter,map)

匿名函数lambda lambda argument1,argument2,...argumentN :expression using arguments 1.lambda是一个表达式,而不是一个语句. 因为这一点,lambda可以出现在python语法不允许def出现的地方---例如,在一个列表常量中或者函数调用的参数中. 2.lambda 的主体是一个单个的表达式,而不是一个代码块. lambda是一个为编写简单的函数设计的,而def用来处理更大的任务. 例如: lambda表示式写法:f

Python interview - reduce & map & filter

Python有很多有用有趣的内置函数,比如reduce,map,filter,lambda,zip等.已经写过了lambda和zip相关的博客.继续写关于reduce,map,filter. Map 首先用help方法看一下map的具体用法. help(map) # result Help on built-in function map in module __builtin__: map(...) map(function, sequence[, sequence, ...]) -> lis

Python自带函数map(),zip()等

1.map()函数 map()函数的目的是对每个成员迭代执行一个函数操作,最后返回的是一个列表 map(function, sequence[, sequence, ...]) -> list In [82]: def add100(x):    ....:     return x+100    ....:  In [83]: map(add100,(44,22,66)) Out[83]: [144, 122, 166] 定义一个函数add100(x),map(add100,(44,22,66

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

Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是将复杂的数据结构隐藏在内置函数中,用C语言来实现,所以仅仅要写出自己的业务逻辑Python会自己主动得出你想要的结果.这方面的内置函数主要有,filter,map,reduce,apply,结合匿名函数,列表解析一起使用,功能更加强大.使用内置函数最显而易见的优点是: 1. 速度快,使用内置函数,比

Python中常用内置函数介绍(filter,map,reduce,apply,zip)

Python是一门很简洁,很优雅的语言,其很多内置函数结合起来使用,可以使用很少的代码来实现很多复杂的功能,如果同样的功能要让C/C++/Java来实现的话,可能会头大,其实Python是将复杂的数据结构隐藏在内置函数中,只要写出自己的业务逻辑Python会自动得出你想要的结果.这方面的内置函数主要有,filter,map,reduce,apply,结合匿名函数,列表解析一起使用,功能更加强大.使用内置函数最显而易见的好处是: 1. 速度快,使用内置函数,比普通的PYTHON实现,速度要快一倍左

Python 中的map函数,filter函数,reduce函数

自学python,很多地方都需要恶补. 三个函数比较类似,都是应用于序列的内置函数.常见的序列包括list.tuple.str. 1.map函数 map函数会根据提供的函数对指定序列做映射. map函数的定义: map(function, sequence[, sequence, ...]) -> list 通过定义可以看到,这个函数的第一个参数是一个函数,剩下的参数是一个或多个序列,返回值是一个集合. function可以理解为是一个一对一或多对一函数,map的作用是以参数序列中的每一个元素调

Python中的lambda、map、filter、reduce、zip

lambda lambda是匿名函数,也就是没有名字的函数.lambda的语法非常简单: 下面是一个lambda表达式的简单例子: 注意:我们可以把lambda表达式赋值给一个变量,然后通过这个变量来使用它. >>> my_sum = lambda x, y: x+y >>> my_sum(1, 2) 3 下图是定义lambda表达式和定义一个普通函数的对比: 注意: 使用lambda表达式并不能提高代码的运行效率,它只能让你的代码看起来简洁一些. map map()接

python中的map、filter、reduce函数

三个函数比较类似,都是应用于序列的内置函数.常见的序列包括list.tuple.str. 1.map函数 map函数会根据提供的函数对指定序列做映射. map函数的定义: map(function, sequence[, sequence, ...]) -> list 通过定义可以看到,这个函数的第一个参数是一个函数,剩下的参数是一个或多个序列,返回值是一个集合. function可以理解为是一个一对一或多对一函数,map的作用是以参数序列中的每一个元素调用function函数,返回包含每次fu

Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊

函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 而函数式编程(请注意多了一个"式"字)--Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算. 我们首先要搞明白计算机(Computer)和计算(Compute)的概念. 在计算机的层次上,CPU执行的是加减乘除的指令代码