广告
返回顶部
首页 > 资讯 > 后端开发 > Python >3.python中map,filter,
  • 148
分享到

3.python中map,filter,

pythonfiltermap 2023-01-31 07:01:17 148人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

一.map函数,对任何可迭代序列中的每一个元素应用对应的函数。(不管处理的是什么类型的序列,最后返回的都是列表。)作用已经在标题中介绍过了,那么先来说说map函数的用法吧。map(处理逻辑可以是函数也可以是lambda表达式,可迭代的序列)

一.map函数,对任何可迭代序列中的每一个元素应用对应的函数。(不管处理的是什么类型的序列,最后返回的都是列表。)

作用已经在标题中介绍过了,那么先来说说map函数的用法吧。

map(处理逻辑可以是函数也可以是lambda表达式,可迭代的序列)

现在有一个列表。

l1 = [1,2,3,4,5]

现在需要给这个列表里的每一个元素都+1。(当然,使用for循环可以做到对序列中的每个元素进行处理,但使用map函数会更加方便。)

首先,定义一个逻辑函数,要如何对序列中的每一个元素进行处理。

def plus(x):

    return x + 1

#每个元素都+1

print map(plus,l1)

#将map函数应用到l1的每一个元素中。

输出的结果为。

>>>[2, 3, 4, 5, 6]


当然,传入map函数中的逻辑函数还可以使用lambda表达式来表示,还拿刚才的例子演示。

l1 = [1,2,3,4,5]

print map(lambda x:x+1,l1)

>>>[2, 3, 4, 5, 6]


那么map函数是怎么做到的?内部功能是如何实现的?下面就来对map函数的内部进行剖析。

下面这个函数就可以实现和python内置的map函数一模一样的功能。

def map_func(func,seq):

    map_list = []

    for i in seq:

        map_list.append(func(i))

    return map_list


注意!上面说的map函数的使用方法是针对Python2.7版本的,针对python3以上的版本不适用,因为从python3开始,map函数不再返回列表,返回的则是一个迭代器,如果想变成列表的话,还需要使用list() 函数做一个转换。



二.filter函数,对序列中的元素进行判断筛选。(返回的结果依旧是个列表。)

fileter函数在拿到一个序列的时候,会开始循环迭代这个序列中的每一个元素,对每一个元素都进行一次if判断,结果为True的加入到列表中,为False的,直接丢掉。

下面是filter函数的简单用法。

一个列表,将这个列表中小于5的元素,全部都列出来。(当然...这么简单的需求也可以使用for循环实现)

filter函数用法和map函数一样都是 filter(函数,可迭代序列)

l1 = [1,2,3,4,5,6,7,8,9,10]


def greater_than(x):

    if x < 5:

        return True

    else:

        return False


print filter(greater_than,l1)

>>>[1, 2, 3, 4]


filter函数依旧可以使用lambda表达式来代替逻辑函数。

print filter(lambda x:x<5,l1)


下面来剖析一下filter函数的工作原理,自己手动写一个和filter功能一模一样的函数:

def filter_func(func,seq):

    filter_list = []

    for s in seq:

        if func(s):

            filter_list.append(s)

    return filter_list


注意啦!这里面的filter函数和map函数一样,用法都是针对python2.7的,在python3中对这个函数做了一些改动,返回的不再是个列表,而是个迭代器。


三.reduce函数,将序列中所有的元素进行合并运算。

现在有个列表,现在需要每个元素要逐个相乘。


l1 = [1,2,3,4,5,6,7,8,9,10]

#reduce函数规定了,一定要传递一个支持一个二元操作的函数

#下面就是定义好的逻辑函数

def bin_func(x,y):

    return x * y


print reduce(plus,l1)

>>> 3628800

下图是reduce函数的工作原理:

wKioL1jNAN2A82opAAC63NnUCNs013.png


接下来,解剖下reduce函数的实现代码。

def reduce_func(func,seq,init_num=None):

    if init_num != None:

        ret = init_num

    else:

        ret = seq.pop(0)

    for i in seq:

        ret=func(ret,i)    #如果这条逻辑不好理解的话,可以仔细想想1*2*3*4 = ((1*2)*3)*4 

    return ret


print reduce_func(bin_func,l1)


>>>3628800


reduce函数使用lambda表达式。

print reduce_func(lambda x,y:x*y,l1)


注意!在python3当中,这个reduce函数被放到了functools这个模块中了,需要倒入functools才可以使用这个函数。


最后总结一下:

map函数用于处理序列中每一个元素。

filter函数用于过滤序列中每一个元素。

reduce函数用于做序列的合并操作。

reduce即为化简,它是这样一个过程:每次迭代,将上一次的迭代结果(第一次时为init的元素,如没有init则为seq的第一个元素)与下一个元素一同执行一个二元的func函数。在reduce函数中,init是可选的,如果使用,则作为第一次迭代的第一个元素使用。



--结束END--

本文标题: 3.python中map,filter,

本文链接: https://www.lsjlt.com/news/191896.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 3.python中map,filter,
    一.map函数,对任何可迭代序列中的每一个元素应用对应的函数。(不管处理的是什么类型的序列,最后返回的都是列表。)作用已经在标题中介绍过了,那么先来说说map函数的用法吧。map(处理逻辑可以是函数也可以是lambda表达式,可迭代的序列)...
    99+
    2023-01-31
    python filter map
  • Python -- filter,map
    1. filter: Type:    builtin_function_or_method Base Class:  <type 'builtin_function_or_method'> Strin...
    99+
    2023-01-31
    Python filter map
  • python 中的filter, map
    python 中的filter, map, reduce方法解释: filter: filter方法调用: resultlst = filter(func, seq) @param func: 可调用对象,接受seq中的元素作为参数 @pa...
    99+
    2023-01-31
    python filter map
  • Python Map, Filter a
    所属网站分类: python基础 > 函数 作者:慧雅 原文链接: http://www.pythonheidong.com/blog/article/21/ 来源:python黑洞网 www.pythonheidong.c...
    99+
    2023-01-31
    Python Map Filter
  • python中filter,map,reduce的作用
    目录一、map函数1. lambda函数2. 自定义函数二、filter函数1. lambda函数2. 自定义函数三、reduce函数1. lambda函数2. 自定义函数一、map...
    99+
    2022-11-11
  • python中filter,map,reduce的作用是什么
    这篇文章主要介绍“python中filter,map,reduce的作用是什么”,在日常操作中,相信很多人在python中filter,map,reduce的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-07-02
  • python如何使用Map和Filter函数
    这篇文章主要介绍了python如何使用Map和Filter函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Map和Filter一旦掌握了lambda表达式,学习将它们与Ma...
    99+
    2023-06-27
  • 一文详解Python中的Map,Filter和Reduce函数
    目录1. 引言2. 高阶函数3. Lambda表达式4. Map函数5. Filter函数6. Reduce函数7. 总结1. 引言 本文重点介绍Python中的三个特殊函数Map,...
    99+
    2022-11-11
  • python中三种高阶函数(map,reduce,filter)详解
    map(function,seq[,seq2]) 接收至少两个参数,基本作用为将传入的函数依次作用到序列的每个元素,并且把结果作为新的序列 返回一个可迭代的map对象 f...
    99+
    2022-11-12
  • python中map和filter函数的区别是什么
    python中map和filter函数的区别是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python的五大特点是什么python的五大特点:1.简单易学,开发程序时...
    99+
    2023-06-14
  • python内置函数-range()+zip()+sorted()+map()+reduce()+filter()
    目录range函数 zip() 函数 其它内置函数 数据类型转换相关内置函数 变量相关函数 数学相关函数 进制相关函数 高阶函数 sorted(iterable,[reverse,k...
    99+
    2022-11-12
  • python内置函数:lambda、map、filter简单介绍
    lambda lambda可以理解为一种小函数,但是它是一个表达式,而不是一个语句,所以在def不允许出现的地方仍然可以使用lambda函数,例如list里。但是lambda内只可以执行一个表达式。 d...
    99+
    2022-06-04
    函数 简单 python
  • Python内置函数Map、Reduce和Filter的作用
    本篇内容主要讲解“Python内置函数Map、Reduce和Filter的作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python内置函数Map、Reduce和Filter的作用”吧! m...
    99+
    2023-06-02
  • python中间结果尽量使用imap/ifilter代替map/filter
    这篇文章主要介绍了python中间结果尽量使用imap/ifilter代替map/filter,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。...
    99+
    2022-10-19
  • 详解Python中高阶函数(map,filter,reduce,sorted)的使用
    目录什么是高阶函数自定义一个高阶函数常用的内置高阶函数map函数参数说明功能实例filter函数功能实例reduce函数功能实例sorted函数参数说明功能实例sort和sorted...
    99+
    2022-11-10
  • Python3中map()、reduce()、filter()的用法详解
    目录1.map()2.filter()3.reduce()Python3中的map()、reduce()、filter() 这3个一般是用于对序列进行操作的内置函数,它们经常需要与 ...
    99+
    2022-11-11
  • Python3中map(),reduce(),filter()的详细用法
    目录前言1.map()2.filter()3.reduce()前言 Python3中的map()、reduce()、filter() 这3个一般是用于对序列进行操作的内置函数,它们经...
    99+
    2022-11-11
  • Python知识点的lambda和map及filter是什么
    这篇文章给大家介绍Python知识点的lambda和map及filter是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。通过示例介绍Python中的lambda,map,filter 函数的使用方法。lambdal...
    99+
    2023-06-02
  • Python学习之魔法函数(filter,map,reduce)详解
    目录filter() 函数map() 函数reduce() 函数filter() 函数 小实战今天的这一章节我们来学习一下,Python 中的三个高级函数,也被称之为 魔法...
    99+
    2022-11-13
  • Python内置函数zip map filter的使用详解
    并行遍历zip zip会取得一个或多个序理为参数,然后返回元组的列表,将这些序列中的并排的元素配成对。 L1=[1,2,3,4] L2=[5,6,7,8] L3=zip(L1,L...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作