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

python--高阶函数

python--高阶函数

  • map
    • map的用法
    • map的代码示例
  • filter
    • filter的用法
    • filter的代码示例
  • reduce
    • reduce的用法
    • reduce的代码示例
  • 返回函数
  • IO编程
    • 打开文件
      • 文件打开--打开格式
      • 文件打开--上下文管理器打开文件(会自动close文件)
    • 文件读取
      • 文件读取--file.read(m)
      • 文件读取--file.readline()
      • 文件读取--file.readlines()
    • 文件写入
      • 文件写入--file.write(内容)
      • 文件写入--file.writelines(list)
    • mode参数
    • 光标操作

map

map的用法

map(函数名列表/元组/集合/字符串)
把传入的函数依次作用于每个元素,处理完后返回的是生成器类型,需要用list生成数据

map的代码示例

li = [1, 2, 3, 4, 5]
def add1(x):return x + 1
add_li = list(map(add1, li)) # [2, 3, 4, 5, 6]
print(add_li)

filter

filter的用法

filter(函数名, 列表/元组/集合/字符串)
filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素,处理完后返回的是生成器类型,需要用list生成数据

filter的代码示例

li = [1, 2, 3, 4, 5, 6]
def even_num(n):if n % 2 == 0:return n
even_li = list(filter(even_num, li))  # [2,4,6]
print(even_li)

reduce

reduce的用法

reduce(函数名,列表/元组/集合/字符串)
reduce()用于对参数序列中元素进行累积。python3 中,reduce已经被从全局名字空间里移除了,它被放置在functools模块里

reduce的代码示例

from functools import reduce
li = [1, 2, 3, 4, 5]
m = reduce(lambda x, y : x+y, li)   # m=15
print(m)

返回函数

def outer_foo(*args): #它接受任意数量的参数argdef inner_foo():#函数打印args中的每个元素for i in args:print(i)return inner_foo
# 实例化outer_foo函数,并将其返回的inner_foo函数赋值给f变量
f = outer_foo(1, 2, 3, 4, 5)
# 调用f函数
f()  # 1 2 3 4 5

IO编程

打开文件

文件打开–打开格式

file = open(文件路径,模式,encoding='utf-8')# 关闭文件
file.close() # 上下文管理器打开文件(会自动close文件)
with open(文件路径,模式,encoding='utf-8') as file:file.read()

fp.seek(m):移动文件指针,当前位置向后移动m个字节
fp.tell(m):查看文件指针
fp.flush(m):刷新缓冲区和fp.close()类似

文件打开–上下文管理器打开文件(会自动close文件)

# 上下文管理器(推荐使用)
#f=open(file=r'D:\ningMengClass\py39\day09\test.txt',mode='a+',encoding='UTF-8')
with open (file=r'D:\ningmengclass\pythonproject\pythonProject\Higher-order function\test.txt',mode='a+',encoding='UTF-8') as file:file.seek(0)result = file.read()print(result)

文件读取

文件读取–file.read(m)

f.read():读取文件的所有数据,默认从头开始,读取出来的数据类型为字符串

# read()
f=open(file=r'D:\ningmengclass\pythonproject\pythonProject\Higher-order function\test.txt',mode='r')
result = f.read()
print(result,type(result))
f.close()

文件读取–file.readline()

f.readline():读取第一行数据,更省内存

#readline()
f=open(file=r'D:\ningmengclass\pythonproject\pythonProject\Higher-order function\test.txt',mode='r')
result = f.readline()
print(result,type(result))
f.close()

文件读取–file.readlines()

f.readlines():按行读取所有文件的数据,返回list,
每一行就是list的一个元素
换行符也会读取出来

# f.readlines()
f=open(file=r'D:\ningmengclass\pythonproject\pythonProject\Higher-order function\test.txt',mode='r')
result = f.readlines()
print(result,type(result))
f.close()

文件写入

文件写入–file.write(内容)

#f.write() 方法返回的是写入文件的字符数,而不是写入的内容。
#f.write('python39期20210413')
f=open(file=r'D:\ningmengclass\pythonproject\pythonProject\Higher-order function\test.txt',mode='w',encoding='UTF-8')
result = f.write('python39期20210413')
print(result)
f.close()

文件写入–file.writelines(list)

# f.writelines(data)
f=open(file=r'D:\ningmengclass\pythonproject\pythonProject\Higher-order function\test.txt',mode='w',encoding='UTF-8')
data=('day01\n','day02\n','day03')
result = f.writelines(data)
print(result)
f.close()

mode参数

r:只读文件
w:只写文件(覆盖)
a:只写文件(追加写入)–append
+:
r+:可以读&可以写(覆盖)
w+:可以读&可以写(覆盖)
a+:可以读&可以写(追加写入)
了解:
rb:二进制形式读取(图片)
wb:二进制形式写入(图片)
ab:二进制形式追加写入(图片)

光标操作

seek(0)
offset:偏移量(字节数)/行
whence:默认是0,从哪里开始偏移/列
0:从文件开头开始算起
1:从光标当前位置开始算起
2:从文件末尾开始算起

相关文章:

python--高阶函数

python--高阶函数 mapmap的用法map的代码示例 filterfilter的用法filter的代码示例 reducereduce的用法reduce的代码示例 返回函数IO编程打开文件文件打开--打开格式文件打开--上下文管理器打开文件(会自动close文件) 文件读取文件读取--file.read(m)文件…...

Vue/Uni-app/微信小程序 v-if 设置出场/退出动画(页面交互不死板,看起来更流畅)

天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/ 在Vue.js中&#xff0c;使用v-if进行条件渲染时设置动画可以通过<transition>组件来实现。 具体操作步骤如下&#xff1a; 包裹条件渲染的元素&#xff1a;您需要将要通过v-if控制显示隐藏的元素包裹在<transition…...

加速量子计算机商业化!富士通日立NEC等联合成立新量子计算公司

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 编辑丨王珩 编译/排版丨沛贤 深度好文&#xff1a;700字丨5分钟阅读 日本工业界和学术界将在 2024 年联合成立新一家公司&#xff0c;研发量子计算机并将其商业化。包括富士通、日立和NEC在内…...

RPC学习笔记一

什么是RPC RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种用于实现分布式系统中不同计算机或进程之间进行通信和调用的技术和模式。 在传统的过程调用中&#xff0c;当一个程序需要调用另一个程序的函数或方法时&#xff0c;通常是在同一台…...

计算机设计大赛 题目:基于深度学习的中文对话问答机器人

文章目录 0 简介1 项目架构2 项目的主要过程2.1 数据清洗、预处理2.2 分桶2.3 训练 3 项目的整体结构4 重要的API4.1 LSTM cells部分&#xff1a;4.2 损失函数&#xff1a;4.3 搭建seq2seq框架&#xff1a;4.4 测试部分&#xff1a;4.5 评价NLP测试效果&#xff1a;4.6 梯度截断…...

LabVIEW飞行器螺旋桨性能测试与数据监控

LabVIEW飞行器螺旋桨性能测试与数据监控 开发LabVIEW的电动飞行器螺旋桨性能测试与数据监控系统&#xff0c;专门针对电动飞行器螺旋桨在运行过程中的性能测试和监控需求。通过采集转速、转矩、拉力和温度等关键参数&#xff0c;系统能够实时监测和分析螺旋桨的状态&#xff0…...

数字电子技术实验(九)

单选题 1. 本实验仿真与实际操作时时钟信号源必须满足什么条件&#xff1f; A. 仿真和实际操作时&#xff0c;时钟信号源频率必须大于1KHZ。 B. 仿真和实际操作时钟信号源频率可以在1 - 5 0HZ之间调整。 C. 仿真和实际操作时钟信号源频率必须是1HZ。 D. 仿真和实际操作时钟…...

Android 开发环境搭建(Android Studio 安装图文详细教程)

Android Studio 下载 https://developer.android.google.cn/studio?hlzh-cn Android Studio 安装 检查电脑是否启用虚拟化 如果没有开启虚拟化&#xff0c;则需要进入电脑的 BIOS 中开启 直接 next选择安装的组件&#xff0c;Android Studio 和 Android 虚拟设备&#xff…...

解决方案:使用Vscode运行命令时,.出现 __vsc_prompt_cmd_original: command not found

参考:https://blog.csdn.net/qq_44949985/article/details/128902944 解决方案&#xff1a;使用Vscode运行命令时,.出现 __vsc_prompt_cmd_original: command not found 问题描述&#xff1a; 在本地的vscode上使用ssh-remote登录到远程服务器&#xff08;操作系统为ubuntu 18.…...

SinoDB数据库运行分析

SinoDB数据库运行主要从数据库互斥资源等待、数据库写类型、备份文件有效性、Chunk状态等15个方向进行分析&#xff0c;具体说明如下&#xff1a; 一、数据库互斥资源等待 检查项目 数据库互斥资源等待 检查命令 onstat -g con |head -20 说明 onstat -g con 查看目前数据处…...

OkHttp

文章目录 OkHttp概要1.简介2.特点3.基本组成5.工作流程 拦截器1.简介2.内置拦截器3.自定义拦截器 连接池1.简介2.常用参数配置选项 Dispatcher和线程池1.简介2.重要方法3.DispatCher中的双端队列4.总结 OkHttp 概要 1.简介 OkHttp是一个开源的HTTP客户端&#xff0c;用于在J…...

uni-app 上传图片无反应 chooseImage失效

1、点击反应都没有 2、输出fail 信息 {"errMsg": "chooseImage:fail api scope is not declared in the privacy agreement", "errno": 112} 提示&#xff1a; 这个是小程序需要更新用户隐私策略 在小程序 微信公众平台 &#xff1a; 设置-&…...

学习Java十一天总结

目录 一、走进Java编程世界 二、变量、常量和运算符 三、if选择结构 四、switch选择结构 五、while循环结构 六、for循环结构 七、数组 八、深度循环结构 九、类和对象 十、类的无参方法 十一、类的带参方法 十二、字符串 一、走进Java编程世界 程序是为了让计算机…...

【光伏监控系统的相关产品有哪些】Acrel-1000DP分布式光伏监控系统

光伏发电系统是指无需通过热过程直接将光能转变为电能的发电系统。通常由光伏方阵、蓄电池组&#xff08;蓄电池控制器&#xff09;、逆变器、交流配电柜和太阳跟踪控制系统等设备组成。其特点是可靠性高、使用寿命长、不污染环境、能独立发电又能并网运行。 分布式光伏监控系…...

[Linux]互斥锁(什么是锁,为什么需要锁,怎么使用锁(接口),演示代码)

目录 一、锁的概念 一些需要了解的概念 什么是锁&#xff1f;为什么需要锁&#xff1f;什么时候使用锁&#xff1f;怎么定义锁&#xff1f; 二、锁的接口 1.初始化锁 2.加锁 3.申请锁 4.解锁 5.销毁锁 三、实践&#xff08;写代码&#xff09;&#xff1a;黄牛抢票 M…...

Web基础06-AJAX,Axios,JSON数据

目录 一、AJAX 1.概述 2.主要作用 3.快速入门 4.AJAX的优缺点 &#xff08;1&#xff09;优点 &#xff08;2&#xff09;缺点 5.同源策略 二、Axios 1.概述 2.快速入门 3.请求方式别名 三、JSON 1.概述 2.主要作用 3.基础语法 4.JSON数据转换 &#xff08;1…...

Java 文件序列化和反序列化

list序列化 /*** 序列化* param list* param filename* throws IOException*/public static void serializeList(List<Map<String, Object>> list, String filename) throws IOException {try (ObjectOutputStream oos new ObjectOutputStream(new FileOutputStre…...

NETLINK_ROUTE 与 NETLINK_SOCK_DIAG 的区别与用法

在 Linux 中&#xff0c;Netlink 是一种用于内核与用户空间之间通信的机制&#xff0c;通过不同的 Netlink 协议族&#xff08;family&#xff09;可以实现不同类型的通信。其中&#xff0c;NETLINK_ROUTE 和 NETLINK_SOCK_DIAG 是两种常用的 Netlink 协议族&#xff0c;它们具…...

docker yocto vscode

scode的docker插件怎么使用 vscode是一个基于VS Code的开发环境&#xff0c;它提供了一个Docker插件&#xff0c;可以帮助你在VS Code中使用Docker进行开发。下面是使用scode的Docker插件的步骤&#xff1a; 安装scode插件&#xff1a;在VS Code的扩展商店中搜索并安装scode插…...

使用ansible剧本进行lvm分盘

使用 Ansible 剧本&#xff08;Playbook&#xff09;进行 LVM 分区管理是一种自动化的方式&#xff0c;可以帮助管理员在多台主机上批量管理逻辑卷。 部署环境 3台主机&#xff0c;添加硬盘 ansible-galaxy collection install community.general 联网执行&#xff0c;下…...

ArcGIS Desktop绘图工具条实战:从基础图形到专业地图注记的进阶指南

1. ArcGIS绘图工具条初探&#xff1a;你的地图设计起点 第一次打开ArcGIS Desktop的绘图工具条时&#xff0c;我就像拿到了一盒全新的彩色铅笔。这个看似简单的工具条&#xff0c;实际上包含了从基础绘图到专业地图注记的全套功能。绘图工具条位于软件界面顶部&#xff0c;右键…...

别再花钱买云API了!手把手教你用Docker+Ollama在本地免费跑通Strix渗透测试

零成本打造企业级渗透测试环境&#xff1a;DockerOllama本地化实战指南 当安全团队每月收到云服务商五位数的API账单时&#xff0c;当关键测试任务因网络抖动被迫中断时&#xff0c;越来越多的技术决策者开始重新审视渗透测试的基础架构。本文将揭示如何用消费级硬件构建媲美商…...

MX28智能舵机RS485底层驱动开发实战

1. MX28智能舵机底层驱动技术解析&#xff1a;基于RS485总线的嵌入式控制实现1.1 技术定位与工程价值MX28是Robotis公司推出的第二代高精度智能舵机&#xff08;Smart Actuator&#xff09;&#xff0c;采用RS485半双工差分总线通信&#xff0c;支持位置、速度、扭矩闭环控制及…...

Null 安全的 BigDecimal 比较器

本文旨在解决这个问题 Java 中对包含 BigDecimal 排序类型对象列表时&#xff0c;如何处理可能出现的空指针异常。自定义 BigDecimal 并结合比较器 Comparator.nullsFirst 可以实现正确的方法 BigDecimal 空值安全排序字段&#xff0c;避免程序崩溃&#xff0c;确保排序结果的正…...

DML实战:价格弹性预测的经济学与机器学习融合之道

1. 价格弹性预测&#xff1a;经济学与机器学习的碰撞 第一次听说价格弹性还能用机器学习预测时&#xff0c;我的反应和大多数经济学背景的同事一样&#xff1a;"这不就是个回归问题吗&#xff1f;"直到亲眼看到某电商平台用DML模型把促销预算节省了23%&#xff0c;才…...

brpc连接池动态调整算法:基于排队理论的设计与实现

brpc连接池动态调整算法&#xff1a;基于排队理论的设计与实现 【免费下载链接】brpc brpc is an Industrial-grade RPC framework using C Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendat…...

二进制入门及其运算

二进制,十进制以及它们之间的转换- 十进制:我们日常生活中最常用的计数系统是\它的基数是10,使用0 - 9这十个数字来表示数。每个数位的权重是10的幂次方,从右往左依次是10⁰、10、10等。例如,数字234可以表示为210 310 410⁰。- 二进制:是计算机科学中广泛使用的计数系统。它的…...

【24年最新算法】首发CPO-XGBoost回归+交叉验证 基于冠豪猪优化算法-XGBoost多变量回归预测

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

Spring Framework测试框架完整指南:从单元测试到集成测试的10个最佳实践

Spring Framework测试框架完整指南&#xff1a;从单元测试到集成测试的10个最佳实践 【免费下载链接】spring-framework spring-projects/spring-framework: 一个基于 Java 的开源应用程序框架&#xff0c;用于构建企业级 Java 应用程序。适合用于构建各种企业级 Java 应用程序…...

ChineseChess-AlphaZero技术架构与实践指南:从环境搭建到模型训练

ChineseChess-AlphaZero技术架构与实践指南&#xff1a;从环境搭建到模型训练 【免费下载链接】ChineseChess-AlphaZero Implement AlphaZero/AlphaGo Zero methods on Chinese chess. 项目地址: https://gitcode.com/gh_mirrors/ch/ChineseChess-AlphaZero 副标题&…...