原帖地址:http://blog.csdn.net/prince2270/archive/2009/10/16/4681299.aspx
在讲述filter,map和reduce之前,首先介绍一下匿名函数lambda。
lambda的使用方法如下:lambda [arg1[,arg2,arg3,...,argn]] : expression
例如:
add = lambda x,y : x + y
add(1,2)
#************************
#运行结果
3
接下来分别介绍filter,map和reduce。
1、filter(bool_func,seq):此函数的功能相当于过滤器。调用一个布尔函数bool_func来迭代遍历每个seq中的元素;返回一个使bool_seq返回值为true的元素的序列。
例如:
filter(lambda x : x%2 == 0,[1,2,3,4,5])
#************************
#运行结果
[2, 4]
filter内建函数的python实现:
def filter(bool_func,seq):
filtered_seq = []
for eachItem in seq:
if bool_func(eachItem):
filtered_seq.append(eachItem)
return filtered_seq
2、map(func,seq1[,seq2...]):将函数func作用于给定序列的每个元素,并用一个列表来提供返回值;如果func为None,func表现为身份函数,返回一个含有每个序列中元素集合的n个元组的列表。
例如:
map(lambda x : None,[1,2,3,4])
#************************
#运行结果
[None, None, None, None]
map(lambda x : x * 2,[1,2,3,4])
#************************
#运行结果
[2, 4, 6, 8]
map(lambda x : x * 2,[1,2,3,4,[5,6,7]])
#************************
#运行结果
[2, 4, 6, 8, [5, 6, 7, 5, 6, 7]]
map(lambda x : None,[1,2,3,4])
#************************
#运行结果
[None, None, None, None]
map内建函数的python实现:
def map(func,seq):
mapped_seq = []
for eachItem in seq:
mapped_seq.append(func(eachItem))
return mapped_seq
3、reduce(func,seq[,init]):func 为二元函数,将func作用于seq序列的元素,每次携带一对(先前的结果以及下一个序列的元素),连续的将现有的结果和下一个值作用在获得的随后的结果上,最后减少我们的序列为一个单一的返回值:如果初始值init给定,第一个比较会是init和第一个序列元素而不是序列的头两个元素。
例如:
reduce(lambda x,y : x + y,[1,2,3,4])
#************************
#运行结果
10
reduce(lambda x,y : x + y,[1,2,3,4],10)
#************************
#运行结果
20
reduce的python实现:
def reduce(bin_func,seq,initial=None):
lseq = list(seq)
if initial is None:
res = lseq.pop(0)
else:
res = initial
for eachItem in lseq:
res = bin_func(res,eachItem)
return res
分享到:
相关推荐
Python内置了一些非常有趣、有用的函数,如:filter、map、reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车。 1. filter函数的功能相当于...
`filter()` 和 `map()` 是 Python 中的两个基本高阶函数,它们可以帮助我们处理序列数据,通过函数来实现复杂的数据转换和筛选,使代码更具有表达力。在实际编程中,还可以结合其他高阶函数如 `reduce()`、`sorted()...
文章目录sorted函数一、sort方法二、sorted内置函数三、情景引入filter类一、简单使用二、练习map类语法:一、简单使用二、练习reduce函数语法:一、简单使用二、设置初始值 Python中使用函数作为参数的内置函数和类...
Python中的lambda表达式、filter()、map()和reduce()函数是高级编程中常用的工具,它们在处理数据和简化代码方面发挥了重要作用。以下是对这些概念的详细解析: **1. Lambda表达式** Lambda表达式是一种简洁的创建...
map 函数是 Python 中的一个内置函数,用于将列表里的每一项数据都执行相同的操作。我们可以使用 map 函数来对列表里的元素进行处理,例如,计算每个学生的平均分。 8. reduce 函数 reduce 函数是 Python 中的一个...
本文将详细探讨Python中的三种高阶函数:map()、filter()和reduce()。 1. **map()函数**: map()函数的主要功能是将一个函数作用于一个或多个序列的所有元素上,并返回一个新的可迭代对象,该对象包含应用函数后的...
本文实例讲述了Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法。分享给大家供大家参考,具体如下: 函数的返回值: 函数一旦执行到 return,函数就会结束,并会返回return 后面的值,...
在Python编程语言中,匿名函数、`map()`、`reduce()`和`filter()`函数是非常重要的概念,特别是对于初学者来说,理解这些函数的用途和用法对于提升编程能力至关重要。 匿名函数,通常以`lambda`关键字定义,它是一...
高阶函数是函数式编程的基石之一,第5章深入讲解了`map()`、`filter()`等经典函数,以及如何创建自定义的高阶函数。递归和归约是函数式编程中的核心概念,第6章详细介绍了如何使用递归来设计算法,以及如何通过归约...
总的来说,“Python之map和reduce”这份文档很可能会涵盖如何使用这两个函数,以及它们在不同场景下的应用实例。通过学习和掌握`map()`和`reduce()`,你可以在Python编程中提升效率,编写出更加简洁且高效的代码。
3. **使用场景**:在Python中,lambda函数常用于需要快速定义简短函数的地方,如作为其他函数的参数,如map(), filter()和reduce()。例如,`map(lambda x: x*2, [1, 2, 3])`将列表中的每个元素乘以2。 4. **对比def...
本文将深入探讨其中的几个关键内建函数:`map()`、`reduce()` 和 `filter()`。 1. **map()**: `map()` 函数接收两个参数,一个是可以执行的操作(通常是函数),另一个是可迭代对象,如列表、元组等。它将传入的...
在Python中,map()、filter()和reduce()等函数返回的迭代器可以延迟计算,提高效率。 通过这个实验,我们不仅了解了函数式编程的基本思想,还掌握了在实际编程中如何运用这些工具来解决问题。这有助于提升代码的...
函数传递在数据处理和分析库如Pandas和NumPy中广泛应用,如`map()`、`filter()`和`reduce()`等函数,它们接受函数作为参数,对数据集进行操作。 总之,Python的函数传递特性是其强大功能的关键组成部分,它允许...
这篇文章主要介绍了简单了解python filter、map、reduce的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python中有一些非常有趣的函数,面试的时候可能...
在Python中,有三个重要的高阶函数:`map()`、`reduce()` 和 `filter()`,它们在处理数据时非常有用。下面将详细解释这三个函数以及它们的用法。 1. `map()` 函数: `map()` 函数用于遍历一个可迭代对象(如列表、...
在Python编程中,map()和reduce()是两个非常有用的高阶函数。它们通常用于对序列进行操作,map()用于将函数应用于序列的每个元素,而reduce()用于将序列中的元素“累积”到单个值。 ### map函数用法 map()函数将...
`map()` 是 Python 内置的高阶函数之一,用于将指定的函数应用于序列中的每一个元素,从而生成一个新的序列。这对于批量处理数据非常有用。 **语法:** ```python map(function, iterable, ...) ``` - `function`...
本篇文章将深入探讨Python列表的常用内建函数,这些函数可以帮助我们更高效地处理列表数据。 1. `shuffle()` 函数:用于随机打乱列表中的元素顺序。如示例所示,`random.shuffle(x)` 将列表 `x` 的元素顺序打乱。 ...