当前位置: 首页 > 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:从文件末尾开始算起

http://www.lryc.cn/news/320694.html

相关文章:

  • Vue/Uni-app/微信小程序 v-if 设置出场/退出动画(页面交互不死板,看起来更流畅)
  • 加速量子计算机商业化!富士通日立NEC等联合成立新量子计算公司
  • RPC学习笔记一
  • 计算机设计大赛 题目:基于深度学习的中文对话问答机器人
  • LabVIEW飞行器螺旋桨性能测试与数据监控
  • 数字电子技术实验(九)
  • Android 开发环境搭建(Android Studio 安装图文详细教程)
  • 解决方案:使用Vscode运行命令时,.出现 __vsc_prompt_cmd_original: command not found
  • SinoDB数据库运行分析
  • OkHttp
  • uni-app 上传图片无反应 chooseImage失效
  • 学习Java十一天总结
  • 【光伏监控系统的相关产品有哪些】Acrel-1000DP分布式光伏监控系统
  • [Linux]互斥锁(什么是锁,为什么需要锁,怎么使用锁(接口),演示代码)
  • Web基础06-AJAX,Axios,JSON数据
  • Java 文件序列化和反序列化
  • NETLINK_ROUTE 与 NETLINK_SOCK_DIAG 的区别与用法
  • docker yocto vscode
  • 使用ansible剧本进行lvm分盘
  • 【排序】快速排序
  • Python大数据实践:selenium爬取京东评论数据
  • 信息系统项目管理师019:存储和数据库(2信息技术发展—2.1信息技术及其发展—2.1.3存储和数据库)
  • Python基础(六)之数值类型元组
  • Chrome历史版本下载地址:Google Chrome Older Versions Download (Windows, Linux Mac)
  • ROS2纯跟踪实现(C++)
  • uniapp微信小程序随机生成canvas-id报错?
  • 爬虫 Day2
  • 达梦数据库SQL
  • python教程——把视频转成gif
  • 深入浅出Go的`encoding/xml`库:实战开发指南