Python语法基础(四)

news2024/12/26 8:19:52

🌈个人主页:羽晨同学 

💫个人格言:“成为自己未来的主人~”  

高阶函数之map

高阶函数就是说,A函数作为B函数的参数,B函数就是高阶函数

map:映射

map(func,iterable)

这个是map的基本语法,它的返回值是一个iterator,返回一个容器和迭代器。

我们来看下面的这一段代码

list1 =[n**2 for n in range(1,6)]
print(list1)

在这段代码中,我们将生成的元素放入了列表当中,然后我们打印这个列表。

这个是这个代码执行出来的结果。

此时,若我们不放在list当中,而是存放到一个变量当中,然后打印这个变量,我们来看看打印出来的是什么?

r1=(n**2 for n in range(1,6))
print(r1) # <generator object <genexpr> at 0x000002548E2998A0>

这个时候的r1,就是一个生成器

如果我们还想要访问这个生成器当中的元素,我们需要再放入列表当中。

print(list(r1))

然后,我们执行代码。

我们可以看到,里面的值被打印了出来。

而对应的,我们定义一个函数。

def func1(x):
    return x**2
rl1 = map(func1,range(1,6))
print(rl1) # <map object at 0x00000178A7BEAC50>

这个时候打印出来的值为:# <map object at 0x00000178A7BEAC50>

如果我们想要得到里面的数字,我们就需要将它也放到列表当中去。

print(list(rl1))

我们除了定义这个函数,我们也可以采用匿名函数的方式。

# 匿名函数
rl2=map(lambda x:x**2,range(1,6))
print(rl2)

如果我们想要传入多个参数呢?我们应该怎么进行操作。

# 2.
def func2(a,b):
    print(a,b)
    return a+b
r21 = map(func2,[1,2,3],[4,5,6])

这个是我们对应的执行结果。

若是我们将这个换成匿名函数,则应该写成下面这样子。

r22=map(lambda a,b:a+b,[1,2,3],[4,5,6])
print(list(r22))

map中的func函数需要设置几个参数,取决于有几个iterable参与运算

map的工作原理是将多个iterable想用位置的元素同时传参给func 

高阶函数之reduced

语法:

reduced(func,sex)

sex一般是有序的序列

首先将sex中的第0个元素和第一个元素传递给func,进行运算,返回结果1,接着,将结果1和第二个元素传递给func,进行运算,返回结果2,直到所有的元素都参与了运算,表示运算结束。

需要注意的有下面几点:

  • func函数需要设置至少两个参数
  • 表示数量的减少
  • 区别于map,reduced在使用之前一定要先导入

导入模块如下:

import functools
functools.reduce()

我们接下来做个例子:

求1-100之间所有整数的和

r1 = functools.reduce(func1,range(1,101))
print(r1) # 5050

r2=functools.reduce(lambda x,y:x+y,range(1,101))
print(r2)

这样子的话,我们就可以完美的实现这个功能。

高阶函数之sorted 

我们之前学过在python中利用sort进行排序,我们来举一个例子:

list1=[34,637,234,2,6,89]
list1.sort()
print(list1)

利用这个代码,我们就可以实现列表从低到高的排序。

那么,利用sorted,我们也可以这样,我们来看下面的这一段代码

list1=[34,637,234,2,6,89]
list2=sorted(list1,reverse=False)
print(list1)
print(list2)

你看,这个代码,我们也完美实现了我们想要的功能,那么,这两个有什么区别呢?

其实你看我们的代码也可以看出来,当使用sorted的时候,我们可以将排序好的赋值到一个新的变量中,而原来变量中值并不会发生改变。

高阶函数之fliter()

语法:

高阶函数之filter()
filter(func,iterable): 过滤
    func:函数
    itearble:可迭代对象

这个函数的作用是将iterable中的元素依次传递给func,根据func的返回值来决定是否保留这个元素,如果返回值是True,那么就保留,反之,就不保留。

我们来看一个例子:

# 1. 已知列表list1 =[34,56,23,34,7,8,19,45,7,9,10,46,7979] 跳出其中的偶数
list1 =[34,56,23,34,7,8,19,45,7,9,10,46,7979]
def func1(x):
    if x %2==0:
        return True
    else:
        return False
it = filter(func1,list1)
print(list(it))

我们也可以使用匿名函数来实现这个功能:

r2=filter(lambda x:x % 2==0,list1)
print(r2)

好了,我们这篇文章的内容就到这里,我们下次再见。

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

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

相关文章

Python毕业设计选题:基于django+vue的智慧社区可视化平台的设计与实现+spider

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 养老机构管理 业主管理 社区安防管理 社区设施管理 车位…

Ubuntu环境中RocketMQ安装教程

参考教程 https://blog.csdn.net/weixin_56219549/article/details/126143231 1、安装JDK&#xff0c;并配置环境变量&#xff08;略&#xff09; 2、下载RocketMQ安装包 RocketMQ下载地址&#xff0c;选择二进制包下载 unzip rocketmq-all-5.0.0-ALPHA-bin-release.zip 使…

【SSM】mybatis的增删改查

目录 代理Dao方式的增删改查 1. 创建项目 $$1. 在sql.xml里增加日志代码以及user的mapper资源。 $$ 2. 在usermapper里引入接口。 $$3. 在测试类中引入以下代码&#xff0c;并修改其中名字。 $$ 4. 实例对象User.java里属性要与表中列严格对应。 2. 查询 1>. 查询所有 …

【C++习题】23.二分查找算法_寻找旋转排序数组中的最小值

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;图解 题目链接&#xff1a; 153. 寻找旋转排序数组中的最小值 题目描述&#xff1a; 解法 暴力解法&#xff1a;O(n) 从前往后找数组中的最小值。 二分算法&#xff1a;O(logn) 先找二段性 因为这…

Linux笔记---进程:进程终止

1. 进程终止概念与分类 进程终止是指一个正在运行的进程结束其执行的操作。以下是一些常见的导致进程终止的情况&#xff1a; 一、正常终止 完成任务当进程完成了它被设计要执行的任务后&#xff0c;就会正常终止。收到特定信号在操作系统中&#xff0c;进程可能会收到来自操作…

立创庐山派 K230 RTSP 推流

立创庐山派使用的是K230芯片&#xff0c;按照教程刷了canmv固件&#xff0c;下载canmv ide&#xff0c;使用嘉楠社区的rtsp和wlan例程&#xff0c;修改成连接wifi以及RTSP推流例程 # Description: This example demonstrates how to stream video and audio to the network us…

Oracle数据恢复—Oracle数据库sysaux文件损坏的数据恢复案例

Oracle数据库故障&分析&#xff1a; 一台Oracle数据库打开报错&#xff0c;报错信息&#xff1a; “system01.dbf需要更多的恢复来保持一致性&#xff0c;数据库无法打开”。管理员联系我们数据恢复中心寻求帮助&#xff0c;并提供了Oracle_Home目录的所有文件。用户方要求…

【kafka04】消息队列与微服务之Kafka 图形工具

Kafka 在 ZooKeeper 里面的存储结构 topic 结构 /brokers/topics/[topic] partition结构 /brokers/topics/[topic]/partitions/[partitionId]/state broker信息 /brokers/ids/[o...N] 控制器 /controller 存储center controller中央控制器所在kafka broker的信息 消费者 /c…

微众银行前端面试题及参考答案

使用的协议是 HTTP 还是 HTTPS&#xff0c;为什么没用 HTTPS&#xff1f; 在前端开发中&#xff0c;有些网站使用 HTTP 协议&#xff0c;有些使用 HTTPS 协议。 使用 HTTP 协议的情况可能是因为网站对安全性的要求不是极高&#xff0c;或者处于开发的早期阶段&#xff0c;还没有…

第144场双周赛:移除石头游戏、两个字符串得切换距离、零数组变换 Ⅲ、最多可收集的水果数目

Q1、[简单] 移除石头游戏 1、题目描述 Alice 和 Bob 在玩一个游戏&#xff0c;他们俩轮流从一堆石头中移除石头&#xff0c;Alice 先进行操作。 Alice 在第一次操作中移除 恰好 10 个石头。接下来的每次操作中&#xff0c;每位玩家移除的石头数 恰好 为另一位玩家上一次操作…

UR开始打中国牌,重磅发布国产化协作机器人UR7e 和 UR12e

近日&#xff0c;优傲&#xff08;UR&#xff09;机器人公司立足中国市场需求&#xff0c;重磅推出UR7e和UR12e 两款本地化协作机器人。它们延续优傲&#xff08;UR&#xff09;一以贯之的高品质与性能特质&#xff0c;着重优化负载自重比&#xff0c;且在价格层面具竞争力&…

应急响应靶机——Windows挖矿事件

载入虚拟机&#xff0c;开启虚拟机&#xff1a; &#xff08;账户密码&#xff1a;administrator/zgsf123&#xff09; 发现登录进去就弹出终端界面&#xff0c;自动运行powshell命令&#xff0c;看来存在计划任务&#xff0c;自动下载了一些文件&#xff0c;之后就主动结束退…

基于深度学习和卷积神经网络的乳腺癌影像自动化诊断系统(PyQt5界面+数据集+训练代码)

乳腺癌是全球女性中最常见的恶性肿瘤之一&#xff0c;早期准确诊断对于提高生存率具有至关重要的意义。传统的乳腺癌诊断方法依赖于放射科医生的经验&#xff0c;然而&#xff0c;由于影像分析的复杂性和人类判断的局限性&#xff0c;准确率和一致性仍存在挑战。近年来&#xf…

深入浅出机器学习中的梯度下降算法

大家好&#xff0c;在机器学习中&#xff0c;梯度下降算法&#xff08;Gradient Descent&#xff09;是一个重要的概念。它是一种优化算法&#xff0c;用于最小化目标函数&#xff0c;通常是损失函数。梯度下降可以帮助找到一个模型最优的参数&#xff0c;使得模型的预测更加准…

PotPlayer 最新版本支持使用 Whisper 自动识别语音生成字幕

PotPlayer 最新版本支持使用 Whisper 自动识别语音生成字幕 设置使用下载地址 设置 使用 下载地址 https://www.videohelp.com/software/PotPlayer

【0x0001】HCI_Set_Event_Mask详解

目录 一、命令概述 二、命令格式 三、命令参数说明 四、返回参数说明 五、命令执行流程 5.1. 主机准备阶段 5.2. 命令发送阶段 5.3. 控制器接收与处理阶段 5.4. 事件过滤与反馈阶段 5.5. 主机处理&#xff08;主机端&#xff09; 5.6. 示例代码 六、命令应用场景 …

可解释机器学习 | Python实现LGBM-SHAP可解释机器学习

机器学习 | Python实现GBDT梯度提升树模型设计 目录 机器学习 | Python实现GBDT梯度提升树模型设计基本介绍模型使用参考资料基本介绍 LightGBM(Light Gradient Boosting Machine)是一种基于决策树的梯度提升框架,是一种高效的机器学习模型。SHAP(SHapley Additive exPlan…

【Rust在WASM中实现pdf文件的生成】

Rust在WASM中实现pdf文件的生成 概念和依赖问题描述分步实现最后 概念和依赖 . WASM WebAssembly&#xff08;简称WASM&#xff09;是一个虚拟指令集体系架构&#xff08;virtual ISA&#xff09;&#xff0c;旨在为C/C等语言编写的程序提供一种高效的二进制格式&#xff0c;使…

Java开发每日一课:Java开发岗位要求

找过工作的朋友应该知道&#xff0c;现在招聘Java开发工程师的公司特别多。那么Java开发这个岗位具体是做什么的&#xff1f;又有什么招聘要求呢&#xff1f; 我毕业的时候也面试过很多公司&#xff0c;当时对Java开发这个岗位的要求不甚了解&#xff0c;因为懂Java语法知识就能…

Spring Boot日志总结

文章目录 1.我们的日志2.日志的作用3.使用日志对象打印日志4.日志框架介绍5.深入理解门面模式(外观模式)6.日志格式的说明7.日志级别7.1日志级别分类7.2配置文件添加日志级别 8.日志持久化9.日志文件的拆分9.1官方文档9.2IDEA演示文件分割 10.日志格式的配置11.更简单的日志输入…