Day 10 python学习笔记

news2025/1/11 23:44:28

高阶函数


map( )

map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。(Iterator是一个可迭代对象)

再简单点说:从可迭代对象中取出第一个值,作为参数传递给x,执行函数体,作为生成对象中第一个数据,之后再第二个、第三个。。。

map():最终返回一个可迭代对象(可迭代对象不是列表)

可迭代对象:可以通过for循环迭代出来的

例:

>>> def f(x):
... return x * x
...
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])   
>>> list(r)    #相当于list([...]) ===>print(list([...]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]

map(函数本身,数据):由于结果r是Iterator惰性序列(仅仅在迭代至某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁。),所以用list()函数让把整个序列都计算出来并返回一个list

或者例二:

a = map(lambda x : x*x,[1,2,3,4])
print(a)    #打印map()的返回
for i in a:   #for遍历可迭代对象
    print(i)



结果:
<map object at 0x000001EA7316BEB0>   #可迭代对象的地址
1
4
9
16

扩展例三:

b = map(lambda x,y:x+y,[1,2,3,4],[5,6,7,8])
for i in b:
    print(i)

b = map(lambda x,y:x+y,[1,2,3,4],(5,6,7,8))  #证明元组也可以
for i in b:
    print(i)

b = map(lambda x,y:x+y,(1,2,3,4),(5,6,7,8))  #元组也属于可迭代对象
for i in b:
    print(i)

#依次传入x = 1,y = 5,x+y=6   x = 2,y = 6,x+y=8

结果:
6
8
10
12
6
8
10
12
6
8
10
12
# map(将来可以被调用的,可迭代数据)

事实上它把运算规则抽象了
map()可以计算复杂的函数

例:
#将所有list里边的元素转换为字符
print(list(map(str,[1,2,3,4,5])))


结果:
['1', '2', '3', '4', '5']

filter( )

过滤序列:
和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

例:
def is_odd(s):
    return n%2==1

list(filter(is_odd,[1,2,3,4,5,6]))


结果:
>>>1,3,5

或者:

a = filter(lambda x: x % 2, [1, 2, 3, 4])
for i in a:
    print(i)


结果;
1
3

reduce( )

reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算

即:以上一次执行的结果座位下一次x的值传入,如果指定了额外值,则第一次会将额外值作为x传入

注:使用前必须导入 from functools import reduce,因为方法是在这个模块里的

例:
from functools import reduce

a = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])
print(a)

#计算过程:x = 1, y = 2,x+y = 3(将这个3传入下一个x)
#     即:x = 3, y = 3(列表里的3),x+y = 6(将这个6传入下一个x)
#     即:x = 6, y = 4(列表里的4),x+y = 10(将这个10传入下一个x)
#...


b = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5], 6)
print(b)
#计算过程:x = 6(额外值先传入), y = 1,x+y = 7(将这个7传入下一个x)
#     即:x = 7, y = 2(列表里的2),x+y = 9(将这个9传入下一个x)
#     即:x = 9, y = 3(列表里的3),x+y = 12(将这个12传入下一个x)
#...



结果:
15
21

 即:

from functools import reduce
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
>>> from functools import reduce
>>> def add(x, y):
... return x + y
...
>>> reduce(add, [1, 3, 5, 7, 9])
25

模块

模块:

一般而言,在python中,xxxx.py文件就是一个模块

一个模块一般只用来存贮和管理一类功能的一个文件

包:文件夹,用来管理和存放模块的,将功能相关的模块放在一个文件夹
注意:普通文件夹可以称为一个包,但是真正的包,存在__init__.py文件

导包

导包方法:

  1. import model_name(包名)
  2. import model_name(包名) as  别名(自己起)
  3. import model_name(包名) import   方法(前面那个包里的方法)
  4. from model_name(包名) import  *

举例1:

import random  #导入random包

a =random.random()   #作用:获取一个[0-1)的随机数
print(a)


结果:
0.08402123649462256

举例2:

import random as r

# random.random()   #嫌每次使用random太麻烦,使用别名
a = r.random()
print(a)


结果:
0.6053232042710952

举例3:

from random import random   #只能使用random包里的random方法
a = r.random()
print(a)


结果:
0.1067221247244563

举例4:

from random import *   #可以使用random包里所有方法
a = random()           #并且调用不需要加包名,直接写方法
print(a)


结果:
0.8487887772496069

from model_name(包名) import  *  的缺点

  1. 导的包太多,浪费资源
  2. 如果包里没有__init__  与 __all__,就无法成功导入

扩展:

如何查看包里面内容?

按住ctrl并且点击包名

如下图:

进入后会另打一个xxx.py文件

里面会有__init__  与 __all__

__all__就是为了让你 * 出所有方法

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

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

相关文章

跨境电商的发展趋势及语言翻译的重要性

随着全球化的不断深入和互联网技术的普及&#xff0c;跨境电商在过去几年内得到了快速发展。跨境电商指的是企业通过电子商务平台销售商品或服务给其他国家或地区的消费者。这种模式不仅打破了传统国际贸易的限制&#xff0c;也为企业提供了更广阔的市场空间。 跨境电商的快速发…

音视频技术开发周刊 | 316

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 日程揭晓&#xff01;速览深圳站大会专题议程详解 LiveVideoStackCon 2023 音视频技术大会深圳站&#xff0c;保持着往届强大的讲师阵容以及高水准的演讲质量。两天的参会…

河南工业大学人工智能与大数据学院学子在第三届“火焰杯”软件测试开发选拔赛中 取得佳绩

近日&#xff0c;第三届“火焰杯”软件测试开发选拔赛落下帷幕&#xff0c;我校人工智能与大数据学院选派的多名参赛选手在王雪涛老师的指导下&#xff0c;经过激烈的角逐&#xff0c;取得优异成绩。其中&#xff0c;何鸿彬&#xff0c;贾文聪获得决赛二等奖&#xff0c;王静宇…

【PyTorch】深度学习实践 01 Overview

人工智能概述 课程前置知识 线性代数 概率论 &#xff08;不要有路径依赖&#xff0c;遇到不会的就现学&#xff09;Python基础 人工智能 问题分类 人工智能&#xff0c;实际上就是利用计算机来代替人脑进行智能工作&#xff0c;计算机所要实现的智能可以分为两大部分&am…

腾讯待办是不是停了?能准时提醒待办事项的APP

有不少网友会使用“腾讯待办”小程序来记录待办的事情&#xff0c;并且设置提醒时间&#xff0c;进行任务管理。不过有不少网友最近在使用腾讯待办小程序的时候&#xff0c;看到了“业务关停通知”的弹窗&#xff0c;想问一下&#xff0c;腾讯待办是不是停了&#xff1f;确实如…

JS多选答题时,选项互斥时的情况

在做答题类的项目时&#xff0c;应该会比较常见多选题选相互斥的问题&#xff0c;例如&#xff1a; 你喜欢什么颜色&#xff1f;&#xff08;&#xff09;A、红色B、紫色C、蓝色D、灰色E、均无如该题&#xff0c;当选择选项E时&#xff0c;明显与其他选项互斥。这个时候经常会…

《作为一名编程新手,如何提升编程能力》

互联网行业是一个充满挑战且内卷比较严重的行业&#xff0c;程序员如何让自己在行业内一直保持竞争力&#xff0c;其实就是需要通过不断的学习提升自己&#xff0c;那么对于一个刚刚入门的新手&#xff0c;如何快速的提升自己呢&#xff1f;本文就和大家交流下入门级程序员想要…

Vue中linq的应用及语句示例

一、运行npm install linq 二、引入linq&#xff08;在你需要用到的组件中引入&#xff09; var Enumerable require(linq); linq并不需要在main.js中import和Vue.use(linq) 三、linq的具体应用 &#xff08;1&#xff09;linq.js 的方法解析说明&#xff08;但是在不同的…

【Python】机器学习-K-近邻(KNN)算法【文末送书】

目录 一 . K-近邻算法&#xff08;KNN&#xff09;概述 二、KNN算法实现 三、 MATLAB实现 四、 实战 一 . K-近邻算法&#xff08;KNN&#xff09;概述 K-近邻算法&#xff08;KNN&#xff09;是一种基本的分类算法&#xff0c;它通过计算数据点之间的距离来进行分类。在…

RDD算子操作(基本算子和常见算子)

目录 一、基本算子 1.map算子 2.flatMap算子 3.filter算子 4.foreach算子 5.saveAsTextFile算子 6.redueceByKey算子 二、常用Transformation算子 1.mapValues算子 2.groupBy算子 3.distinct算子 4.union算子 5.join算子 6.intersection算子 7.glom算子 8.groupByKey算…

阿里巴巴中国站item_search_img按图搜索1688商品(拍立淘) API 返回值说明

1. 商品API&#xff1a;提供了搜索、详情、评价等与商品相关的接口&#xff0c;可以通过关键词搜索商品&#xff0c;获取商品详情、销量等信息。 2. 店铺API&#xff1a;提供了店铺信息、店铺内商品等接口&#xff0c;可以查询店铺的基本信息、主营类目、评分等&#xff0c;还可…

常用封装工具类

文章目录 前言一、保留指定小数位二、获取bean三、假分页计算四、星期计算五、经纬度计算距离 前言 一、保留指定小数位 import org.apache.commons.lang3.StringUtils; import java.math.BigDecimal;public class OffSetPointUtil {/*** 保留指定小数位数** param value 原始…

【AI视野·今日Sound 声学论文速览 第二十八期】Wed, 18 Oct 2023

AI视野今日CS.Sound 声学论文速览 Wed, 18 Oct 2023 Totally 12 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Robust Wake-Up Word Detection by Two-stage Multi-resolution Ensembles Authors Fernando L pez, Jordi Luque, Carlos Segura, Pablo…

当数据库遇上深度学习:AI DataLoader 助力因子管理模型训练全流程

深度学习模型有能力自动发现变量之间的关系&#xff0c;而这些关系通常是不可见的&#xff0c;这使得深度学习可以挖掘新的因子和规律&#xff0c;为量化投资策略提供更多可能性。在传统的量化策略开发流程中&#xff0c;通常会使用 Python 或第三方工具生成因子&#xff0c;并…

什么是电源高压测试标准?如何测试?测试时要注意什么?

电源高压测试也叫电源耐压测试&#xff0c;是为了检测电源产品绝缘结构是否能够承受电力系统的内部过电压&#xff0c;进而防止安全事故的发生。不同技术规格的产品&#xff0c;高压测试的标准也不同。对于一般设备来说&#xff0c;以两倍于被测物的工作电压再加1000V作为测试的…

访问控制1

文章目录 主要内容一.ServiceAccount1.示例&#xff1a;在一个名为acctests的namespace中&#xff0c;创建一个名为udbs的serviceAccount代码如下&#xff08;示例&#xff09;: 2.解释 二.Role和ClusterRole1.在名为test的namespace中创建一个名为test-role的角色,以及创建一个…

vue3+ts父子组件以及单页面刷新的方法

父子组件刷新页面&#xff1a; 父组件定义函数reset&#xff0c;子组件props接收 示例一&#xff1a; 父组件 //ts删减部分&#xff1a; import { deleteCompanyById, findAllCompanys } from /api/company import { usePureFetch } from /nexus/useFetch import type Compa…

2023 | 组蛋白乳酸化如何影响免疫、自噬最新发现!

乳 酸 乳酸是人体循环系统最丰富的代谢产物之一。乳酸由糖酵解的终产物丙酮酸盐通过乳酸脱氢酶&#xff08;LDH&#xff09;产生。有氧条件下&#xff0c;丙酮酸盐可以穿梭进入线粒体&#xff0c;以促进生物合成途径和ATP产生。当氧气不足时&#xff0c;丙酮酸转化为乳酸&…

asp.net文档管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net文档管理系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c#语言开发 asp.net文档管理系统 二、功能介绍 (1…

如何系列 如何玩转远程调用之OpenFegin+SpringBoot(非Cloud)

文章目录 简介原生Fegin示例基础契约日志重试编码器/解码器自定义解码器 请求拦截器响应拦截器表单文件上传支持错误解码器断路器指标metrics客户端 配合SpringBoot&#xff08;阶段一&#xff09;配合SpringBoot&#xff08;阶段二&#xff09;1.EnableLakerFeignClients2.Lak…