0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python高阶函数详解

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-03-02 16:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

python高阶函数

1. map 函数

map 函数,它接收两个参数,第一个参数是一个函数对象(当然也可以是一个lambda表达式),第二个参数是一个序列。

它可以实现怎样的功能呢,我举个例子你就明白了。

>>> map(lambda x: x*2, [1,2,3,4,5])
[2, 4, 6, 8, 10]

可以很清楚地看到,它可以将后面序列中的每一个元素做为参数传入lambda中。

当我们不使用 map 函数时,你也许会这样子写。

mylist=[]
for i in [1,2,3,4,5]:
    mylist.append(i*2)

2. filter 函数

filter 函数,和 map 函数相似。同样也是接收两个参数,一个lambda 表达式,一个序列。它会遍历后面序列中每一个元素,并将其做为参数传入lambda表达式中,当表达式返回 True,则元素会被保留下来,当表达式返回 False ,则元素会被丢弃。

下面这个例子,将过滤出一个列表中小于0的元素。

>>>filter(lambda x: x < 0, range(-5, 5))
[-5, -4, -3, -2, -1]

3. reduce 函数

reduce 函数,也是类似的。它的作用是先对序列中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 lambda 函数运算,将其得到的结果再与第四个元素进行运算,以此类推下去直到后面没有元素了。

https://file.elecfans.com//web2/M00/33/8C/poYBAGIfLxCAarbfAAB0y7gjBWk239.png

这边举个例子你也就明白了。

>>>reduce(lambda x,y: x+y, [1,2,3,4,5])
15

它的运算过程分解一下是这样的。

1+2=3
3+3=6
6+4=10
10+5=15

4. 注意点

以上几个函数,熟练的掌握它们的写法,可以让我们的代码看起来更加的 Pythonic ,在某一程度上代码看起来更加的简洁。

如果你是新手呢,你需要注意的是,以上示例是在 Python2.x 环境下演示的。而在 Python3.x 中,却有所不同,你可以自己尝试一下。

这里总结一下:

第一点,map 和 filter 函数返回的都不再是一个列表,而是一个迭代器对象。这里以map为例

>>> map_obj = map(lambda x: x*2, [1,2,3,4,5])
>>> from collections.abc import Iterator
>>> isinstance(map_obj, Iterator)
True
>>> next(map_obj)
2
>>> list(map_obj)
[4, 6, 8, 10]

第二点,reduce 不可以直接调用,而是要先导入才能使用

from functools import reduce

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66839
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89586
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    余承东疑再次喊话比亚迪,高阶智驾如何界定?

    电子发烧友网报道(文 / 吴子鹏) 近日,比亚迪在智能化战略发布会上宣布全系搭载 “天神之眼” 高阶智驾系统,这一举措大幅降低了高阶智驾的价格门槛。就连起售价不到 7 万元的入门车型海鸥,也配备了
    的头像 发表于 02-17 01:19 2872次阅读

    淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战

    本文详解淘宝开放平台taobao.item_get接口对接全流程,涵盖参数配置、MD5签名生成、Python企业级代码实现及高频问题排查,提供可落地的实战方案,助你高效稳定获取商品数据。
    的头像 发表于 09-26 09:13 467次阅读
    淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 <b class='flag-5'>Python</b> 代码实战

    termux如何搭建python游戏

    termux如何搭建python游戏 Termux搭建Python游戏开发环境的完整指南 一、Termux基础环境准备 Termux是一款无需root即可在安卓设备上运行的Linux终端
    发表于 08-29 07:06

    python app不能运行怎么解决?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    发表于 08-06 06:27

    详解hal_entry入口函数

    当使用RTOS时,程序从main函数开始进行线程调度;当没有使用RTOS时,C语言程序的入口函数main函数调用了hal_entry函数。由于我们新建的工程是没有选用RTOS的,因此,
    的头像 发表于 07-25 15:34 1662次阅读

    【HarmonyOS 5】鸿蒙中的UIAbility详解(三)

    【HarmonyOS 5】鸿蒙中的UIAbility详解(三) ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言 本文是鸿蒙中的UIAbility
    的头像 发表于 06-14 22:32 482次阅读

    自动驾驶行业常提的高阶智驾是个啥?

    [首发于智驾最前沿微信公众号]近年来,随着人工智能、大数据、传感器技术及高性能计算平台的迅速发展,自动驾驶行业不断突破。从最初的驾驶辅助系统到最近火热的端到端,再到如今的高阶智驾,智驾行业关键词
    的头像 发表于 04-18 12:24 855次阅读
    自动驾驶行业常提的<b class='flag-5'>高阶</b>智驾是个啥?

    永磁同步电机自适应高阶滑模Type-2模糊控制

    针对永磁同步电机数学模型不确定问题,提出一种自适应高阶滑模Type-2模糊控制方法。采用积分滑模面二阶滑模控制律,保持传统滑模控制的鲁棒性并实现不含不确定高阶输入输出有限时间稳定;不需要预先确定干扰
    发表于 03-27 11:54

    零基础入门:如何在树莓派上编写和运行Python程序?

    在这篇文章中,我将为你简要介绍Python程序是什么、Python程序可以用来做什么,以及如何在RaspberryPi上编写和运行一个简单的Python程序。什么是Python程序?
    的头像 发表于 03-25 09:27 1524次阅读
    零基础入门:如何在树莓派上编写和运行<b class='flag-5'>Python</b>程序?

    详解RTOS中的Hook函数

    Hook函数是RTOS中的一个关键特性,通过该函数,用户可以增强对任务管理的控制,定义系统行为。
    的头像 发表于 03-24 16:14 839次阅读

    比亚迪全系车型搭载高阶智驾技术

    2月10日,比亚迪举办智能化战略发布会,重磅发布全民智驾战略。在整车智能战略下,比亚迪构建起天神之眼技术矩阵,其全系车型将搭载高阶智驾技术,其中天神之眼 C首批上市21款车型,覆盖7万级到20万级,包括价格亲民的海鸥,让高阶智驾人人可享,引领汽车行业智能化变革。
    的头像 发表于 02-11 13:45 707次阅读

    Python绘图Matplotlib快速参考手册

     PYTHON
    发表于 02-07 14:04 0次下载

    使用Python实现xgboost教程

    使用Python实现XGBoost模型通常涉及以下几个步骤:数据准备、模型训练、模型评估和模型预测。以下是一个详细的教程,指导你如何在Python中使用XGBoost。 1. 安装XGBoost
    的头像 发表于 01-19 11:21 2215次阅读

    轻舟智航中高阶智驾解决方案再获项目定点

    近日,轻舟智航宣布其基于地平线征程6M打造的中高阶智驾解决方案「轻舟乘风」正式获得头部新势力车企量产项目定点。目前,轻舟智航基于征程5的智驾方案已取得规模化量产。此次基于征程6M再获车企量产定点,意味着轻舟智航已基于地平线征程平台建立面向中高阶智驾量产的可靠实力。
    的头像 发表于 12-26 15:26 984次阅读

    各类Modbus功能接口函数详解

    函数对应于功能码01(0x01)读取线圈/离散量输出状态(Read CoilStatus/DOs),其中,所读取的值存放于参数uint8_t * dest指向的数组空间因此dest指向的空间必须足够大,其大小至少为nb * sizeof(uint8_t)个字节。
    的头像 发表于 12-11 17:12 3440次阅读
    各类Modbus功能接口<b class='flag-5'>函数</b><b class='flag-5'>详解</b>