Python----map,filter,reduce,zip,lambda的使用方法

简介: Python----map,filter,reduce,zip,lambda的使用方法

【原文链接】

map,filter,reduce,zip都是处理序列的便捷的内置函数

1 map(func,iterable)

map的作用主要是将一个函数应用于一个可迭代的序列,然后将返回值返回

a=[1,2,3,4,5,6]
def func(x):
    return x*x

b=map(func,a)
print(list(b))

运行结果为:

[1, 4, 9, 16, 25, 36]

2 filter(func,iterable)

filter的功能是通过func来对可迭代的序列进行过滤,如果func的返回值为真,则对应的iterable中的值保留下来,最后一起以序列的形式返回

a=[1,2,3,4,5,6]
def func(x):
    return x%2==0

b=filter(func,a)
print(list(b))

执行结果如下所示:

[2, 4, 6]

3 reduce(func,iterable)

reduce 的功能是股东计算应用于可迭代序列iterable的结果,最后将结果返回,非常适合应用类似累加和累乘的场景

from functools import reduce

a=[1,2,3,4,5,6]
def add(x,y):
    return x+y

def multi(x,y):
    return x*y
b=reduce(add,a)
c=reduce(multi,a)
print(b)
print(c)

执行结果如下:

21
720

4 zip(*iterable)

zip的功能是映射多个容器的相似索引,可以方便用于来构造字典

a=[1,2,3,4,5]
b=["a","b","c","d","e"]
c=dict(zip(b,a))
print(c)

执行结果为:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

灵活地应用这几个内置函数,有时候可以是代码更加简洁

5 匿名函数

lambda 表达式其实就是匿名函数,在很多比如定义一个函数,函数的功能比较简单同时又只会用一次,这时候如果像普通定义函数那样定义,总会有种不划算的感觉,这时候匿名函数的作用就来了,通过使用lambda表示定义个匿名函数,即达到了函数的功能,同时又没有定义函数

为了更好的理解匿名函数,下面先通过一个普通的函数定义来看一下

def add(a,b):
    return (a+b)

temp=add(100,200)
print(temp)

显然,执行结果为300,下面采用lambda表达式来达到同样的效果

f=lambda x,y:x+y
print(f(100,200))

结果同上面定义函数的方式是一样的,lambda表达式其实也挺简单的,冒号前面的就可以理解为参数的形参,冒号后面就可以理解函数的返回值

6 lambda表达式通常和map,filter,zip,reduce等结合起来一起用非常方便

下面看个例子

a=[1,2,3,4,5,6]

print(list(map(lambda x:x*x,a)))

执行结果为:

[1, 4, 9, 16, 25, 36]

代码非常的简洁

在一些开源库中,lambda表达式也经常被使用,所以这里专门把lambda表达式拿出来讲解一下

目录
相关文章
|
11月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
569 2
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
687 154
WK
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
647 36
|
JavaScript 前端开发
js map和reduce
js map和reduce
|
存储 大数据 Python
案例学Python:filter()函数的用法,高级!
`filter()`函数是Python中处理序列数据的强大工具,它允许我们高效地根据条件过滤元素。通过结合匿名函数、常规函数或直接利用Python的内置逻辑,`filter()`提供了灵活且高效的过滤机制,尤其在大数据处理和内存敏感的应用中展现出其价值。掌握 `filter()`的使用,不仅能提升代码的可读性和效率,还能更好地适应Python的函数式编程风格。
871 2
|
JavaScript 前端开发
JavaScript 中 五种迭代数组的方法 every some map filter forEach
本文介绍了JavaScript中五种常用数组迭代方法:every、some、filter、map和forEach,并通过示例代码展示了它们的基本用法和区别。
|
开发者 Python
Python中的函数式编程:理解map、filter和reduce
【2月更文挑战第13天】 本文深入探讨了Python中函数式编程的三个主要工具:map、filter和reduce。我们将详细解释这些函数的工作原理,并通过实例来展示它们如何使代码更简洁、更易读。我们还将讨论一些常见的误解和陷阱,以及如何避免它们。无论你是Python新手还是有经验的开发者,本文都将帮助你更好地理解和使用这些强大的函数。
|
存储 Python
介绍Python中的函数式编程工具,如`map`、`filter`和`reduce`。
介绍Python中的函数式编程工具,如`map`、`filter`和`reduce`。
343 3
|
Python
Python函数式编程,map(), filter() 和 reduce() 函数的作用是什么?
Python函数式编程,map(), filter() 和 reduce() 函数的作用是什么?
440 4
|
分布式计算 Python
Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊
函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。
1730 0

推荐镜像

更多