【测试开发学习历程】python高阶函数

目录

1 map()函数

2 reduce()函数

3 filter()函数

4 sorted()函数


1 map()函数

map()函数语法:map(function,iterable)

  • 参数:

    • function:函数

    • iterable:一个或多个序列

  • 返回值:迭代器对象

作用:map()是 Python 内置的高阶函数,它接收一个函数 function 和一个 iterable,并通过把函数 function依次作用在 iterable的每个元素上,并返回一个新的迭代器;map()函数也可以接收多个iterable

# 传入一个序列的例子
def f(x):return x*x
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
​
for i in map(f, list1):print(i)
​
# 传入多个序列的例子
def f(x, y):return x*y
list1 = [1, 2, 3]
list2 = [4, 5, 6]
​
for i in map(f, list1, list2):print(i, end="\t")

注意:map()函数不改变原有的迭代器,而是返回一个新的迭代器。

2 reduce()函数

reduce()函数语法:reduce(function, iterable[, initializer])

  • 参数:

    • function:函数

    • iterable:可迭代对象

    • initializer:可选,初始参数

  • 返回值:返回函数计算结果

作用:reduce()函数也是Python内置的一个高阶函数,reduce()函数接收的参数和 map()类似,一个函数 function,一个iterable,但行为和 map()不同,reduce()函数的作用是用传给 reduce 中的function函数先对iterable中的第 1、2 个元素进行运算,得到的结果再与第3个数据用 function 函数运算,最后返回运算的结果。

Python3.x reduce() 已经被移到 functools 模块里,如果我们要使用,需要引入 functools 模块来调用 reduce() 函数:

from functools import reduce

举例:

def add(x, y):print("x=%d,y=%d" % (x, y))return x + y
​
sum1 = reduce(add, [1,2,3,4,5]) # 相当于计算1+2+3+4+5,得到15
print(sum1)
​
# reduce()还可以接收第3个可选参数,作为计算的初始值。如果把初始值设为1000
sum2 = reduce(add, [1,2,3,4,5], 1000)   # 相当于计算1000+1+2+3+4+5,得到1015
print(sum2)

3 filter()函数

filter()函数语法:filter(function, iterable)

  • 参数:

    • function:判断函数

    • iterable:可迭代对象

  • 返回值:迭代器

作用:filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。该函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新的迭代器对象中。

举例:

# 判断n是不是偶数
def is_odd(n):return n%2 == 0odd = filter(is_odd, [1,2,3,4,5,100])
​
print(list(odd))

4 sorted()函数

sorted函数语法:sorted(iterable, reverse=False)

  • 参数说明:

    • iterable -- 可迭代对象。

    • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

  • 返回值:返回重新排序的列表。

作用:sorted() 函数对所有可迭代的对象进行排序操作。

面试常问题:sorted()函数与sort()方法的区别?

  1. sort()方法是应用在list对象上的方法,sorted()函数可以对所有可迭代的对象进行排序操作;

  2. list对象的sort()方法是对已经存在的列表进行操作,没有返回值,而sorted()函数返回的是一个新的list对象,而不是在原来的基础上进行的操作。

举例:

list1 = [5, 7, 6, 3, 4, 1, 2]
list2 = sorted(list1)
print(list1)        # 原来的列表顺序不变
print(list2)        # 新生成了一个列表

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

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

相关文章

[每日算法 - 阿里机试] leetcode739. 每日温度

入口 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/daily-temperatures/descr…

定义一个函数:将输入字符串中最长的单词输出

#include <stdio.h> #include <string.h> int main(){ // 定义一个函数&#xff0c;用于判断字符是否为字母 int ab(char); // 定义一个函数&#xff0c;用于返回字符串中连续字母的最大长度起始位置 int lg(char[]); int i; char str[100…

windows安装charles抓包iphone

安装charles抓包iphone charles基础介绍windows安装 charles基础介绍 Charles 是在 PC 端常用的网络封包截取工具&#xff0c;在做移动开发时&#xff0c;我们为了调试与服务器端的网络通讯协议&#xff0c;常常需要截取网络封包来分析。除了在做移动开发中调试端口外&#xf…

不允许在constexpr函数中进行声明

这是我用pycharm在windows系统下复现sfm深度学习网络(Deep Two-View Structure-from-Motion Revisited&#xff09;遇见的问题&#xff0c;复现时有段代码pytorch扩展cuda/c&#xff0c;pycharm中出现C标准相关的报错如下&#xff1a; 在网上查找很久无果&#xff0c;后面通过…

strlen的模拟实现详解(三种办法)

文章目录 概要整体架构流程代码实现小结 概要 通过指针的运用和递归函数通过三种办法模拟实现strlen的功能 整体架构流程 第一种&#xff1a;&#xff08;计数器版&#xff09;通过指针的计算字符串的长度&#xff0c;通过while循环条件是指针不等于\0&#xff0c;来实现指针…

sipp单机压测freeswitch第4篇压测点对点呼叫

SIPp压测点对点呼叫&#xff0c;主要是使用官方提供的g711a.pcap模拟语音发起&#xff0c;在呼叫成功后Freeswitch播放一个音频文件可以是wav,SIPp后续开启Rtp回显功能&#xff0c;模拟双方相互发言 audioCall脚本xml 脚本大概意思是&#xff1a;发起成功后执行5分钟后自己挂断…

关于VMware虚拟机支不支持睿频技术的讨论

文章目录 概要名词解释超线程技术睿频技术虚拟化技术 整体测试流程测试平台 小结 概要 最近一直在研究基于Linux的虚拟机&#xff0c;目前看起来效果比在Windows上略差点&#xff0c;还没找到原因。我偶然发现在VMware这个虚拟机OS上CPU频率不对&#xff0c;我在疑惑这对于虚拟…

nginx配置实例-高可用主备模式

目录 什么是高可用&#xff1f; 解决的问题&#xff1f; 双机热备方案 keepalived是什么&#xff1f; 故障转移机制 环境准备 一、实现过程 1.1安装keepalived 安装好以后&#xff0c;将keepalived程序开启&#xff0c;并且加入到开机启动项中 1.2修改主机&#xff08;…

winform入门篇3 -- 手工创建窗口

手工创建窗口 Form, 窗口 可以手工创建一个窗口类 class MyFrom : Form { } 1.创建一个windows 窗体应用 这样就自动创建了一个窗体应用Form1 现在不使用这个自动创建的&#xff0c;手工写一个 2.手动创建 1.删除Form1.cs 2.添加 新建MyForm 类 让该类继承Form 在构造…

Covalent Network(CQT)推出以太坊质押迁移计划,以增强长期结构化数据可用性、塑造万亿级 LLM 参数体系

作为 Web3 领先的链上数据层&#xff0c;Covalent Network&#xff08;CQT&#xff09;宣布了其将质押操作从 Moonbeam 迁移回以太坊的决定。此举是 Covalent Network&#xff08;CQT&#xff09;走向以太坊时光机&#xff08;EWM&#xff09;的第一步&#xff0c;EWM 是一个为…

Python | 超前滞后分析

Nino SST Indices (Nino 12, 3, 3.4, 4; ONI and TNI) 有几个指标用于监测热带太平洋&#xff0c;所有这些指标都是基于海表温度(SST)异常在一个给定的区域的平均值。通常&#xff0c;异常是相对于30年的周期来计算的。厄尔尼诺3.4指数(Nio 3.4 index)和海洋厄尔尼诺指数(Ocea…

Qt C++ 实现文件监视源码

以下是使用Qt C++实现文件监视的一个简单示例代码: #include <QCoreApplication> #include <QFileSystemWatcher> #include <QDebug>int main(int argc, char *argv[

Linux操作系统上面安装mysql指南

1.到达一个官网当中开始下载linux操作版本的mysql版本进行下载。 版本号&#xff1a;8.0.35 Red Hat Enterprise Linux / Oracle LinuxOperating System: Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit) 开始对其进行查找和选择 先让其开始进行基础的下载&#xf…

golang代码练习样例模版--推荐--测试学习使用的方法

golang代码练习样例模版 以前用的python代码&#xff0c;每次测试都是一个python文件&#xff0c;但是go就是以文件夹为目录为 结构的测试&#xff08;同一个文件夹下&#xff0c;不能有同名的函数&#xff09; 大部分时间就是测试&#xff0c;如何对go程序函数进行测试&#…

智能成绩表---重点 覆写comparator排序的compare函数

小明来到某学校当老师&#xff0c;需要将学生按考试总分或单科分数进行排名&#xff0c;你能帮帮他吗&#xff1f; 输入描述 第 1 行输入两个整数&#xff0c;学生人数 n 和科目数量 m。 0 < n < 100 0 < m < 10 第 2 行输入 m 个科目名称&#xff0c;彼此之间用…

BERT实战指南:使用预训练模型进行文本分类任务

1. 简介 在本章中&#xff0c;我们将介绍BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;预训练模型的背景和应用领域。 BERT背景介绍 BERT是由Google在2018年提出的一种预训练语言模型&#xff0c;它基于Transformer架构进行设计&am…

【java工具-灵活拉取数据库表结构和数据】

需求&#xff1a; 假设我们现在有一个需求&#xff0c;需要快速拉取数据库的某些表建表语句&#xff0c;和数据&#xff0c;平时做备份之类&#xff1b; 我这边自己写了个工具&#xff0c;不多废话&#xff0c;也不整虚的&#xff0c; 直接看代码&#xff1a; package com.…

在线客服系统:企业沟通的未来

随着互联网技术的飞速发展&#xff0c;企业与客户之间的沟通方式也在经历着翻天覆地的变化。在这个信息爆炸的时代&#xff0c;一个高效、便捷、智能的在线客服系统成为了企业提升服务质量、增强客户满意度的关键。在线客服系统的重要性在线客服系统是企业与客户进行实时沟通的…

GitLab教程(一):安装Git、配置SSH公钥

文章目录 序一、Git安装与基本配置&#xff08;Windows&#xff09;下载卸载安装基本配置 二、SSH密钥配置 序 为什么要使用代码版本管理工具&#xff1a; 最近笔者确实因为未使用代码版本管理工具遇到了一些愚蠢的问题&#xff0c;笔者因此认为代码版本管理工具对于提高团队…

JR-SMD201-P便携式网络解码器

详细介绍&#xff1a; JR-SMD201-P便携式网络解码器采用1/2U设计&#xff0c;支持AVS/H.265/H.264/MPEG2解码&#xff0c;支持IP输入&#xff0c;支持1080P/1080I/720P/576I/480I多种分辨率&#xff0c;支持DRA/AC3/EAC3/AAC/MPEG等音频。 产品特点 支持输入方式IP 接口丰富&a…