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表达式拿出来讲解一下

目录
相关文章
|
9天前
|
Python
掌握Python Lambda:简化代码,提升效率!
掌握Python Lambda:简化代码,提升效率!
|
16天前
|
Python
Python的Lambda匿名函数详解
Python的Lambda匿名函数详解
6 1
3个常用的Python性能分析工具及其使用方法
以下是几个常用的性能分析工具及其使用方法和常用命令:
|
30天前
|
存储 Java Shell
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
【Python学习教程】Python函数和lambda表达式_6(1),2024蚂蚁金服面试题及答案
|
1月前
|
C++ 计算机视觉 Python
【学习什锦】python中的匿名函数(lambda)与max、key参数
【学习什锦】python中的匿名函数(lambda)与max、key参数
10 3
|
1月前
|
存储 数据处理 Python
python 之map、zip和filter迭代器示例详解
python 之map、zip和filter迭代器示例详解
17 0
|
1月前
|
程序员 Python
python lambda表达式表达式详解及应用
python lambda表达式表达式详解及应用
35 0
|
算法 Python
Python之利用reduce函数求序列的最值及排序
  在一般讲述Python的reduce函数的例子中,通常都是拿列表求和来作为例子。那么,是否还有其他例子呢?   本次分享将讲述如何利用Python中的reduce函数对序列求最值以及排序。
1233 0
|
1天前
|
Shell Python
GitHub星标破千Star!Python游戏编程的初学者指南
Python 是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。 目前的编程书籍大多分为两种类型。第一种,与其说是教编程的书,倒不如说是在教“游戏制作软件”,或教授使用一种呆板的语言,使得编程“简单”到不再是编程。而第二种,它们就像是教数学课一样教编程:所有的原理和概念都以小的应用程序的方式呈现给读者。
|
1天前
|
机器学习/深度学习 存储 自然语言处理
惊艳!老司机熬夜总结的Python高性能编程,高效、稳定、快速!
Python 语言是一种脚本语言,其应用领域非常广泛,包括数据分析、自然语言处理机器学习、科学计算、推荐系统构建等。 能够轻松实现和代码跑得够快之间的取舍却是一个世人皆知且令人惋惜的现象而这个问题其实是可以解决的。 有些人想要让顺序执行的过程跑得更快。有些人需要利用多核架构、集群,或者图形处理单元的优势来解决他们的问题。有些人需要可伸缩系统在保证可靠性的前提下酌情或根据资金多少处理更多或更少的工作。有些人意识到他们的编程技巧,通常是来自其他语言,可能不如别人的自然。