python入门第十七节常用的高级函数

常用的高级函数

  • 常用的高阶函数
    • filter(function, iterable)
    • map(func, *iterables)
      • reduce(function, iterable[, initial])

常用的高阶函数

  • 定义:参数或返回值为其他函数的函数

filter(function, iterable)

  • function:函数(function 必需能够接受1个实参),也可以为 None
  • iterable:可迭代对象
  • 将 iterable 中每个元素作为参数传递给函数,根据函数的返回结果进行判断 True或 False,将判断为 True 的 iterable 中的元素构建新的迭代器并返回
  • 如果 function 为 None,直接判断 iterable 中元素 True 或 False,再返回为 True的元素构建的新的迭代器
object1 = filter(lambda x: x-1, [1, 2, 3, False, 4])
print(list(object1))
object3 = filter(None, [1, 2, 0, 3, False, 4])
print(list(object3))

map(func, *iterables)

  • func:函数(func 必需能够接收 iterables 个数的实参)
  • iterables:可迭代对象
  • 用 iterables 中的每个元素作为函数的参数来调用函数,以迭代器形式返回所有结果
  • 当有多个 iterables 对象时,最短的 iterables 耗尽则函数停止
def square(a):
return a**2result = map(square, [1, 2, 3])
print(list(result))result = map(lambda a: a**2, [1, 2, 3])
print(list(result))result = list(map(float, ["1", "2", "3"]))
print(result)# 类似于zip的取元素方式
result = list(map(lambda x, y, z: x+y+z, [1, 2, 3], [3, 2, 1], [1,3, 2]))
print(result)# 当有多个 iterables 对象时,最短的 iterables 耗尽则函数停止
result = list(map(lambda x, y, z: x+y+z, [1, 2, 3], [3, 2, 1], [1,3]))
print(result)

reduce(function, iterable[, initial])

  • function:函数(function 必需能够接收两个实参)
  • iterable:可迭代对象
  • initial:初始值
  • 在 Python2 中 reduce() 是内置函数,而在Python3中 reduce() 函数是在functools模块中的,所以在使用的时候需要先导入 functools 模块
  • 在没有指定 initial 参数时,先把 iterable 的前两个元素作为参数调用函数,把这次函数的结果以及iterable 的下一个元素又作为参数再调用函数,以此类推
  • 在指定 initial 参数时,先把 initial 值和 iterable 的第一个元素作为参数调用函数,把这次函数的结果以及 iterable 的下一个元素又作为参数再调用函数,以此类推
  • 如果iterable为空,返回initial,此时如果没有指定initial,则报错
  • 如果iterable只有一个元素且没有指定initial,返回该元素
from functools import reducedef add(m, n):s = m + nreturn s# 过程:[(1+2)+3]+4 = 10
result = reduce(add, [1, 2, 3, 4])
print(result)# 过程:2*[2*(2*5+1)+2]+3 = 51
result = reduce(lambda x, y: 2*x + y, [1, 2, 3], 5)
print(result)# iterable为空,返回initial
result = reduce(lambda x, y: 10*x + 2*y, [], 123)
print(result) # 123
# iterable只有一个元素且没有指定 initial,返回该元素
result = reduce(lambda x, y: 10*x + 2*y, [123])
print(result) # 123# 过程:10*2 + 2*123 = 266
result = reduce(lambda x, y: 10*x + 2*y, [123], 2)
print(result)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/720094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue.js 实用技巧:深入理解 Vue.set 方法

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

20 个不同的 Python 函数实例

Python 是一种广泛使用的高级编程语言,其函数是 Python 编程中至关重要的概念之一。函数是一段可以重复使用的代码块,可以接收输入参数并返回输出结果。使用函数能够提高代码的可读性、可维护性和重用性。 基础知识 在 Python 中,函数使用关…

异常值检测-箱线图 头歌代码注释

方法一: import pandas as pd import matplotlib.pyplot as plt from scipy import stats import numpy as npdata pd.read_csv("src/death.csv", index_colUnnamed: 0)data data.dropna(axis1, threshdata.shape[0] * 0.2) data data.dropna(axis0, …

【如何在Docker中,修改已经挂载的卷(Volume)】

曾梦想执剑走天涯,我是程序猿【AK】 提示:添加投票!!! 目录 简述概要知识图谱 简述概要 如何在Docker中,修改已经挂载的卷(Volume) 知识图谱 在Docker中,修改已经挂载…

C#双向链表实现:在当前节点后插入新数据的方法Insert()

目录 1.定义一个泛型节点类并自动属性 2.定义链表类&#xff0c;并实现Append、Print、MoveFirst、 Insert 3.Main方法 1.定义一个泛型节点类并自动属性 /// <summary> /// 定义泛型节点类 /// </summary> /// <typeparam name"T">泛型运算符&…

本地navicate连接vm虚拟机中的mysql5.7docker容器

一&#xff0c;配置 前提是我已经启动的mysql5.7容器 使用 docker ps -a 查看所有的容器 使用 docker exec -it c4f9 bash 进入mysql命令行&#xff0c;注意这个c4f9是容器唯一id&#xff0c;不用写全连接mysql mysql -uroot -p123456&#xff0c;连接成功后 输入 show datab…

蓝桥杯——123

123 二分等差数列求和前缀和数组 题目分析 连续一段的和我们想到了前缀和&#xff0c;但是这里的l和r的范围为1e12&#xff0c;明显不能用O(n)的时间复杂度去求前缀和。那么我们开始观察序列的特点&#xff0c;可以按照等差数列对序列进行分块。如上图&#xff0c;在求前10个…

LDA(Latent Dirichlet Allocation,隐含狄利克雷分布)模型简单使用

LDA&#xff08;Latent Dirichlet Allocation&#xff0c;隐含狄利克雷分布&#xff09;模型 机器学习高级算法中LDA算法有线性判别分析&#xff08;Linear Discriminant Analysis&#xff0c;LDA&#xff09;和隐含狄利克雷分布&#xff08;Latent Dirichlet Allocation&…

Android的多线程和异步处理

在Android开发中&#xff0c;多线程和异步处理是处理耗时操作、提高应用响应性和性能的关键技术。以下是一些关于Android多线程和异步处理的基本概念和实践&#xff1a; 1. **主线程&#xff08;UI线程&#xff09;**&#xff1a; - Android应用的主线程负责处理UI操作和事…

AI大预言模型——ChatGPT科研与AI绘图及论文高效写作教程

原文链接&#xff1a;AI大预言模型——ChatGPT科研与AI绘图及论文高效写作教程 2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚…

当代体育科技期刊投稿邮箱

《当代体育科技》杂志是由国家新闻出版总署批准的正规体育类学术期刊&#xff0c;刊登国内外体育科技领域的新技术、新成果&#xff0c;介绍体育运动项目新的训练方法、动态和发展趋势&#xff0c;宣传科学技术在体育行业中的应用&#xff0c;促进我国体育科技事业的发展。适用…

【笔记版】docker常用指令---systemctl类、docker状态

systemctl [options] docker 启动&#xff1a;system start docker查看状态&#xff1a;systemctl status docker停止&#xff1a;systemctl stop docker有警告&#xff1a;service关闭了&#xff0c;但是docker.socket仍响应解决方法&#xff1a;systemctl stop docker.socket…

springboot2入门到实战-数据库缓存同步框架canal

canal框架 canal [kə’nl]&#xff0c;译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费 早期阿里巴巴因为杭州和美国双机房部署&#xff0c;存在跨机房同步的业务需求&#xff0c;实现方式主要是基于业务 trig…

文章汇总(专题整理、面试总结、自学教程)

这么多年的程序员职业生涯中&#xff0c;都没有好好整理所知所会的知识&#xff0c;老是时间一长会忘记。在这里做一个总结&#xff0c;也当是自己的复盘。 面试题整理&#xff1a; 内容链接Java基础面试题Java 基础面试题-CSDN博客集合&#xff08;hashMap&#xff09;。。。…

【sgCollapseBtn】自定义组件:底部折叠/展开按钮

特性&#xff1a; 支持自定义折叠状态支持自定义标签名称 sgCollapseBtn源码 <template><div :class"$options.name" click"show !show" :placement"placement"><div class"collapse-btns"><div class"c…

嵌入式中volatile关键字的使用方法

Hi,大家好&#xff01; 今天我们来学习一下volatile关键字&#xff0c;volatile关键字想必大家在平时编程中都见过或用过。可是小伙伴们有没有想过什么时候需要使用volatile关键字吗&#xff1f; 在C语言中&#xff0c;volatile是一个关键字&#xff0c;用于告诉编译器不要优化…

Java 打包 SpringBoot 项目报错

Java 打包 SpringBoot 项目报错 问题重现 Please refer to xxxx for the individual test results. Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream. 解决问题 在 pom.xml 的 <properties> 中添加项目代码 <s…

MySQL-- 优化(慢查询)

MySQL–优化&#xff08;慢查询&#xff09; 定位慢查询SQL执行计划索引 存储引擎索引底层数据结构聚簇和非聚簇索引索引创建原则索引失效场景 SQL优化经验 一、如何定位慢查询&#xff1f; 定位慢查询是数据库性能优化的关键步骤之一。当数据库执行某些查询时&#xff0c;如…

QUIC来了!

什么是QUIC QUIC&#xff0c;快速UDP网络连接(Quick UDP Internet Connection)的简称&#xff0c;即RFC文档描述它为一个面向连接的安全通用传输协议。其基于UDP协议实现了可靠传输及拥塞控制&#xff0c;简单来说&#xff0c;QUIC TCP TLS。 为什么有了QUIC HTTP2.0为了为了…

知识图谱(Knowledge Graph)

知识图谱&#xff08;Knowledge Graph&#xff09;是一种图结构化的信息表达方式&#xff0c;旨在将丰富多样的知识、概念和实体之间的复杂关系以图形式表示&#xff0c;以便计算机系统能够理解和推理这些信息。知识图谱是人工智能和语义网技术领域的重要应用&#xff0c;通过构…