IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python 学习中碰到的函数 -> 正文阅读

[Python知识库]Python 学习中碰到的函数

?

map(作用于后面的序列)

格式

map(func,sep1,sep2,…)

map函数第一个参数接受的是一个函数,后面接收的是一个或多个可迭代的序列(列表、元组和字符串),他返回的是一个集合。

也可以理解为:map()函数是将 func函数作用于后面序列中的每一个数,并将所有的调用结果作为一个list返回,如果 func为None,作用同zip()函数。

1、当sep只有一个时,将函数func作用于这个sep序列的每一个元素上,并得到一个新的sep

map()函数工作流程:↓

??在这里插入图片描述

从上图可以看出,函数func函数会作用于seq中的每个元素,得到func(seq[n])组成的列表。下面举得例子来帮助我们更好的理解这个工作过程。

1、

print(list( map(lambda x:x%2 range(5)) ))
[1,0,1,0]
一个sep时候,可以用filter()函数代替

2、当seq多于一个时,map可以并行(注意是并行)地对每个seq执行如下图所示的过程:
在这里插入图片描述

有图可以看出,我们seq1,seq2的对应位置元素同时 传入我们的函数,且得到一个返回值,我们将这个返回值存放在一个列表里面,

print( list(map(lambda x , y : (x,y), [2,4,6],[3,2,1])))
输出[5, 6, 7]

我们还可以定义返回值的形式
比如元组:
print( list( map(lambda x,y:(x,y),[1,2,3],[4,5,6]) ))
比如字典
print( list( map(lambda x,y:{x:y},[1,2,3],[4,5,6])))
其实说实话 你如果看的不是很懂 你就这么理解 我们前面不是有参数么,
我们后面也有对应个数的序列,你可以理解为 我们第一个参数对应第一个序列.
#第n个参数对应第n个序列 并把他们传入我们对应的函数进行运算,每一次运算的结果都会存放在 列表中

借鉴于:
map

filter(过滤)

格式

filter:过滤函数
概念:filter函数 也会接收一个序列或者函数,他也会作用于 每次元素上 如果返回值为True 就会保留并返回 如果为Flase 就会舍去
格式:
舍去 奇数
def idd(x):
return x%2==0
x=[1,2,3,4]
print(list(filter(idd,x)))

lambda(匿名函数)

在python中,我们可以使用lambda关键字来声明一个匿名函数这就是我们为什么 称它为“lambda匿名函数”。匿名函数是指没有声明函数名称的函数。 尽管他们形式上不相同,但是它的行为方式和def定义的函数完全一致。
那为什么要使用它呢?
一般是需要短时间使用函数才使用lambda函数

语法

lambda函数只包含一个语句,表现形式如下:
lambda [arg1,[,arg2,arg3,…]]:expression
其中lambda是预留的关键字,arg和expression由用户自定义
arg:是参数列表,他和python中函数的(function)的定义是一样的
略微我提一下他的参数列表形式:
a,b a=1,b=1 *args **args a,b=1,*args 空 .....
*和**的区别
expression是一个参数表达式,表达式中出现的参数需要在arg里面有定义,并且表达式是单行的,只能有一个表达式,比如:
1, None, a + b, sum(a), 1 if a >10 else 0, ......

特点

接下来请看lambda函数的一些特点:

1、当然既然叫匿名函数。它肯定是匿名的:
。。。。所谓匿名函数,通俗的讲它就是没有名字的函数,lambda函数没有名字
2、lambda 函数可以接受任意数量的参数,但函数只能包含一个表达式。
3、表达式lambda函数执行的一段代码,它可以返回任何的值,也可以不返回值
。。。。它有输入、输出的值,当然 上面说了,输出(返回)值不是必要的。
4、lambda可以返回函数对象,我们可以把返回的函数赋值给其他变量
5、拥有自己的命名空间
。。。。不能访问自己参数列表之外或全局命名空间里面的参数,只能完成非常简单的功能(我自己理解为,lambda函数是独立的 就好比 全局变量a 我们给lamba函数一个参数a 他们毫不相关)

用法

我们可以使用一下语法来声明一个lambda函数:
lambda s1,s2,.......:expression
如上面所述,我们的参数可以写多个,但是只能有一个表达式
举例:
qumo=lambda num:num%2
print(qumo(5))
输出:
1
在这段代码中,num就是我们的参数,num%2 就是我们的表达式,表达式用来计算结果,然后返回。该表达式获取输入的参数,然后%2,得到余数1,当然这是只有一个参数的情况下,多个参数也是一样,数组之类的序列都是像遍历数组一样,一个一个传入,一个一个计算,一个一个返回。
为了方便理解(因为我也是小白)上面的lambda函数也相当于下面这种:
def qumo(num): return num % 2
上面是一个参数的时候,接下来我们看看大于一个的时候
pro =lambda x,y:x*y print( pro(2,3) )
输出 6

函数中调用lambda函数:

开始我看的时候,我还有点蒙,我理解为:我们将testfunc函数 赋给了 result1,testfunc(10)传入的参数是他自己本身的,也就是num,当执行到result的时候,result(9)传入的参数就是 lambda的参数 x

def testfunc(num):
    return lambda x : x * num
result1 = testfunc(10)
print(result1(9))   ##输出  90


def testfunc(num):
    return lambda x : x * num
 
result1 = testfunc(10)
result2 = testfunc(1000)
 
print(result1(9))  ##输出 90
print(result2(9))	##输出 9000

高阶使用

所谓高阶使用就是和其他内置函数一起使用,比如我上面的map和fileter。

保留指定位数的几种方法

1、"%.nf"(四舍五入)

f=1.23456

print("%.2f"%f) >> 1.23
print("%.3f"%f)  >>1.235

2、format函数(四舍五入)

f=1.23456

print("{:.2f}".format(f))  >>1.23
print("{:.3f}".format(f))  >>1.235
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:27:53  更:2022-03-12 17:29:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:31:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码