当前位置: 首页 > news >正文

Python语法基础(四)

🌈个人主页:羽晨同学 

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

高阶函数之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) # 5050r2=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 Trueelse:return False
it = filter(func1,list1)
print(list(it))

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

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

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

相关文章:

Python语法基础(四)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 高阶函数之map 高阶函数就是说&#xff0c;A函数作为B函数的参数&#xff0c;B函数就是高阶函数 map&#xff1a;映射 map(func,iterable) 这个是map的基本语法&#xff0c;…...

03_Django视图

三、Django模板 模板Templates 在Django框架中&#xff0c;模板是可以帮助开发者快速生成呈现给用户页面的工具 模板的设计方式实现了我们MVT中VT的解耦(M:Model&#xff0c;V:View&#xff0c;T:Template)&#xff0c;VT有着N:M的关系&#xff0c;一个V可以调用任意T&#xf…...

如何从 Hugging Face 数据集中随机采样数据并保存为新的 Arrow 文件

如何从 Hugging Face 数据集中随机采样数据并保存为新的 Arrow 文件 在使用 Hugging Face 的数据集进行模型训练时&#xff0c;有时我们并不需要整个数据集&#xff0c;尤其是当数据集非常大时。为了节省存储空间和提高训练效率&#xff0c;我们可以从数据集中随机采样一部分数…...

11 设计模式之代理模式(送资料案例)

一、什么是代理模式&#xff1f; 在现实生活中&#xff0c;我们常常遇到这样的场景&#xff1a;由于某些原因&#xff0c;我们可能无法亲自完成某个任务&#xff0c;便会委托他人代为执行。在设计模式中&#xff0c;代理模式 就是用来解决这种“委托”问题的&#xff0…...

MongoDB聚合操作

1.聚合操作 聚合操作处理数据记录并返回计算结果。聚合操作组值来自多个文档&#xff0c;可以对分组数据执行各种操作以返回单个结果。聚合操作包含三类&#xff1a;单一作用聚合、聚合管道、MapReduce。 单一作用聚合&#xff1a;提供了对常见聚合过程的简单访问&#xff0c…...

第二十三周周报:High-fidelity Person-centric Subject-to-Image Synthesis

目录 摘要 Abstract TDM SDM SNF 测试时的人物细节捕捉 主要贡献 总结 摘要 本周阅读了一篇2024年CVPR的关于高保真度、以人物为中心的图像合成方法的论文&#xff1a;High-fidelity Person-centric Subject-to-Image Synthesis。该论文提出了一种名为Face-diffuser的…...

Cesium 与 Leaflet:地理信息可视化技术比较

在现代地理信息系统(GIS)和空间数据可视化领域,Cesium 和 Leaflet 是两种非常常见的地理可视化库,它们各自适用于不同的应用场景。Cesium 专注于三维地球视图和复杂空间分析,而 Leaflet 则注重轻量级的二维地图展示。本文将对这两种技术进行详细的对比,帮助开发者根据具体…...

Linux 服务器使用指南:诞生与演进以及版本(一)

一、引言 在当今信息技术的浪潮中&#xff0c;Linux 操作系统无疑是一个关键的支柱&#x1f60e;。无论是在服务器管理、软件开发还是大数据处理领域&#xff0c;Linux 都以其卓越的适应性和优势脱颖而出&#x1f44d;。然而&#xff0c;对于许多新手而言&#xff0c;Linux 系统…...

龙蜥 Linux 安装 JDK

龙蜥 Linux 安装 JDK 下载安装解压到目标路径设置环境变量直接在启动脚本中临时设置 参考资料 下载 这个就不赘述了&#xff0c;参考资料中的另外两篇安装帖&#xff0c;都有。 如果不能上网&#xff0c;也可以去内网其他之前装过JDK的服务器&#xff0c;直接复制过来。 tar …...

Python小白语法基础20(模块与包)

0) 参考文章 python的模块(module)、包(package)及pip_python package-CSDN博客Python之函数、模块、包库_python函数、模块和包-CSDN博客Python函数模块自定义封装及模块嵌套导入&#xff08;手把手教程&#xff09;_python如何封装一个模块-CSDN博客 1) 模块与包说明 软件…...

详解 Qt QtPDF之QPdfPageNavigator 页面跳转

文章目录 前言头文件&#xff1a; 自 Qt 6.4 起继承自&#xff1a; 属性backAvailable : const boolcurrentLocation : const QPointFcurrentPage : const intcurrentZoom : const qrealforwardAvailable : const bool 公共函数QPdfPageNavigator(QObject *parent)virtual ~QPd…...

通俗易懂:序列标注与命名实体识别(NER)概述及标注方法解析

目录 一、序列标注&#xff08;Sequence Tagging&#xff09;二、命名实体识别&#xff08;Named Entity Recognition&#xff0c;NER&#xff09;**命名实体识别的作用****命名实体识别的常见实体类别** &#xff1a; 三、标签类型四、序列标注的三种常见方法1. **BIO&#xf…...

【C语言】二叉树(BinaryTree)的创建、3种递归遍历、3种非递归遍历、结点度的实现

代码主要实现了以下功能&#xff1a; 二叉树相关数据结构定义 定义了二叉树节点结构体 BiTNode&#xff0c;包含节点数据值&#xff08;字符类型&#xff09;以及指向左右子树的指针。 定义了顺序栈结构体 SqStack&#xff0c;用于存储二叉树节点指针&#xff0c;实现非递归遍历…...

2024年11月文章一览

2024年11月编程人总共更新了21篇文章&#xff1a; 1.2024年10月文章一览 2.《使用Gin框架构建分布式应用》阅读笔记&#xff1a;p307-p392 3.《使用Gin框架构建分布式应用》阅读笔记&#xff1a;p393-p437 4.《使用Gin框架构建分布式应用》读后感 5.《Django 5 By Example…...

重生之我在异世界学编程之C语言:二维数组篇

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文一 二维数组的创建1. 二维数组的…...

和鲸科技创始人CEO范向伟出席首届工业智算产业发展研讨会,共话 AI 创新与产业化落地

11 月 22 日&#xff0c;首届工业智算产业发展研讨会在中国工业互联网研究院召开。工业和信息化部党组成员、副部长单忠德&#xff0c;国家信息中心大数据发展部副主任魏颖出席会议并致辞。中国工程院院士、北京化工大学教授高金吉&#xff0c;工业和信息化部信息通信发展司二级…...

postgres数据备份与主从配置

备份PostgreSQL数据库 备份格式有几种选择&#xff1a; bak&#xff1a;压缩二进制格式 sql&#xff1a;明文转储 tar: tarball mydb# \q -bash-4.2$ pg pgawk pg_dump pgrep pg_basebackup pg_dumpall pg_restore# 备份所有的 -bash-4.2$ pg_dumpall &…...

【二分查找】力扣 275. H 指数 II

一、题目 二、思路 h 指数是高引用引用次数&#xff0c;而 citations 数组中存储的就是不同论文被引用的次数&#xff0c;并且是按照升序排列的。也就是说 h 指数将整个 citations 数组分成了两部分&#xff0c;左半部分是不够引用 h 次 的论文&#xff0c;右半部分论文的引用…...

使用uni-app进行开发前准备

使用uni-app进行开发&#xff0c;需要遵循一定的步骤和流程。以下是一个详细的指南&#xff0c;帮助你开始使用uni-app进行开发&#xff1a; 一、开发环境搭建 安装Node.js&#xff1a; 首先&#xff0c;从Node.js的官方网站&#xff08;https://nodejs.org/&#xff09;下载并…...

AI开发-深度学习框架-PyTorch-torchnlp

1 需求 Welcome to Pytorch-NLP’s documentation! — PyTorch-NLP 0.5.0 documentation 2 接口 3 示例 4 参考资料...

接口测试,接口间数据传递,数组和字符串类型

一、接口传递说明接口1:输出如下接口2:输入如下&#xff1a;接口2的入参employeeId和userName需要从接口1的出参中获取二、解决方案ApiFox脚本&#xff1a;1、接口1后置操作&#xff1a;设置环境变量如下&#xff1a;var employeeList pm.response.json().data[0].employeeLis…...

C++ Move 构造函数底层执行机制

C Move构造函数底层执行机制探秘 在C11引入的移动语义中&#xff0c;Move构造函数通过高效转移资源所有权优化性能&#xff0c;成为现代C的核心特性之一。理解其底层机制不仅能提升代码效率&#xff0c;还能避免资源管理中的常见陷阱。本文将深入剖析Move构造函数的实现原理&a…...

光伏系统中的最大功率跟踪:滑模控制与传统方法的巧妙结合

光伏发电系统&#xff0c;滑膜控制结合扰动观察法和电导增量法&#xff0c;可更快实现 最大功率跟踪。在光伏发电系统的领域里&#xff0c;最大功率跟踪&#xff08;MPPT&#xff09;技术一直是提升发电效率的关键所在。传统的扰动观察法和电导增量法在MPPT方面各有优劣&#x…...

TUXEDO Control Center核心架构解密:从代码组织到环境配置的实践指南

TUXEDO Control Center核心架构解密&#xff1a;从代码组织到环境配置的实践指南 【免费下载链接】tuxedo-control-center A tool to help you control performance, energy, fan and comfort settings on TUXEDO laptops. 项目地址: https://gitcode.com/gh_mirrors/tu/tuxe…...

RC5红外协议底层实现与嵌入式集成指南

1. RC5协议底层实现技术解析RC5是一种由Philips&#xff08;现NXP&#xff09;于1980年代设计的红外遥控通信协议&#xff0c;广泛应用于电视、机顶盒、音响等消费电子设备。与通用异步收发器&#xff08;UART&#xff09;或IC等同步总线不同&#xff0c;RC5采用双相曼彻斯特编…...

Cherry Studio快速上手:从零部署到实战避坑指南

Cherry Studio快速上手&#xff1a;从零部署到实战避坑指南 【免费下载链接】cherry-studio &#x1f352; Cherry Studio is a desktop client that supports for multiple LLM providers. Support deepseek-r1 项目地址: https://gitcode.com/GitHub_Trending/ch/cherry-st…...

【PAT甲级真题】- Speech Patterns (25)

题目来源 Speech Patterns (25) 题目描述点击链接自行查看 注意点&#xff1a; 字母不区分大小写多个答案输出最小字典序的那个 思路简介 简单的哈希表 按照题目的要求搜索到一个单词后就把它放到哈希表当中 然后维护出现次数最多的单词和它的数量即可 遇到的问题 大小写转…...

避开这3个坑!Zynq PS与PL通过BRAM通信时,你的AXI配置可能错了

Zynq PS与PL通过BRAM通信的三大AXI配置陷阱与实战解决方案 在嵌入式系统开发中&#xff0c;Zynq系列芯片的PS&#xff08;Processing System&#xff09;与PL&#xff08;Programmable Logic&#xff09;之间的高效数据交互是许多项目的核心需求。BRAM&#xff08;Block RAM&am…...

LiuJuan20260223Zimage助力Dify平台:快速构建企业级AI应用

LiuJuan20260223Zimage助力Dify平台&#xff1a;快速构建企业级AI应用 最近在帮几个朋友的公司搭建内部AI工具时&#xff0c;发现一个挺有意思的现象。很多团队都意识到了AI的潜力&#xff0c;也想用上像LiuJuan20260223Zimage这样强大的图像理解模型&#xff0c;但一提到“部…...

Vue3 + Monaco Editor 避坑指南:手把手教你干掉那个多余的滚动条

Vue3 Monaco Editor 实战&#xff1a;彻底解决编辑器滚动条异常问题 作为一名长期在前端领域深耕的开发者&#xff0c;我最近在Vue3项目中集成Monaco Editor时遇到了一个令人头疼的问题——编辑器在没有内容溢出的情况下&#xff0c;依然显示着碍眼的滚动条。经过一番探索和调…...