# 0 引言 Python语言中有许多不是很常用的操作,在此进行逐一梳理。 # 1 lambda函数 ## 1.1 基本概念 lambda函数是一种匿名函数,即没有名字的函数 使用lambda保留字定义,函数名是返回结果 lambda函数的函数体只是一个表达式 lambda函数用于定义简单的、能够在一行内表示的函数 lambda表达式” : “后面,只能有一个表达式,def则可以有多个。 lambda一般用来定义简单的函数,而def可以定义复杂的函数 ## 1.2 使用方式 ### 1.2.1 基本使用 传入单个参数 ``` python3 >>> g = lambda x: 2 * x >>> g(2) 4 ``` 传入多个参数 ``` python3 >>> f = lambda x, y: x * y >>> f(3, 5) 15 ``` ### 1.2.2 配合使用 lambda由于可以定义函数表达式,因此经常与map reduce filter函数结合使用 与map函数配合使用 ``` python3 >>> arr = [1, 2, 3] >>> list(map(lambda x: 2*x, arr)) [2, 4, 6] ``` 与filter函数配合使用 ``` python3 >>> list(filter(lambda x: x%2 == 1, arr)) [1, 3] ``` 与reduce函数配合使用 reduce 函数已从 Python3 内置函数中删除并移到“functools”模块 ``` python3 >>> from functools import reduce >>> reduce(lambda x,y : x + y, arr) 6 ``` # 2 内置函数整理 ## 2.1 进制转换 bin() 将给的参数转换成二进制 hex() 将给的参数转换成十六进制 ``` python3 >>> bin(10) '0b1010' >>> hex(10) '0xa' ``` ## 2.2 基本运算 abs() 返回绝对值 divmode() 返回商和余数 round() 四舍五入 pow(a, b) 求a的b次幂, 如果有三个参数. 则求完次幂后对第三个数取余 sum() 求和 min() 求最小值 max() 求最大值 ``` python3 print(abs(-2)) # 绝对值:2 print(divmod(20,3)) # 求商和余数:(6,2) print(round(4.50)) # 五舍六入:4 print(round(4.51)) #5 print(pow(10,2,3)) # 如果给了第三个参数. 表示最后取余:1 print(sum([1,2,3,4,5,6,7,8,9,10])) # 求和:55 print(min(5,3,9,12,7,2)) #求最小值:2 print(max(7,3,15,9,4,13)) #求最大值:15 ``` ## 2.3 ascii操作 ord('a') 获取字符的ascii码 chr(25) 获取ascii码对应的字符 ```python3 >>> ord('a') 97 >>> chr(97) 'a' ``` ## 2.4 迭代器生成器函数 涉及iter next yield函数 ### 2.4.1 iter iter() 函数用来生成迭代器。 iter(object[, sentinel]) - object -- 支持迭代的集合对象。 - sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。 ``` python3 object -- 支持迭代的集合对象。 sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。 ``` # 3 heapq堆排序库 ## 3.1 介绍 Heap queue algorithm堆队列算法(又名priority queue优先队列)的部分特性,指出堆中元素总是满足a[k] <= a[2*k+1] and a[k] <= a[2*k+2]的关系式,同时a[0]永远是堆中最小的元素。 主要此处是小根堆,要是想大根堆的话,需要进去的时候先取负数,出来的时候也再取负数。 - heap = [] # 创建一个空堆 - heappush(heap,item) # 将一个新的item(项)放入堆 - item = heappop(heap) # 将堆中最小的item弹出(即将根heap[0]弹出) - item = heap[0] # 取堆中最小的item但是不弹出它 - heapify(x) # 将列表转换为堆的且是原地*O(n)的 ## 3.2使用 通过heapqify将数组变成小根堆 ``` python3 >>> import heapq >>> nums = [2, 3, 5, 1, 4] >>> heapq.heapify(nums) >>> nums [1, 2, 5, 3, 4] ``` 添加元素到堆里面 ``` python3 >>> heapq.heappush(nums, 0) >>> nums [0, 2, 1, 3, 4, 5] ``` 弹出堆顶元素 ``` python3 >>> heapq.heappop(nums) 0 >>> nums [1, 2, 5, 3, 4] ``` 如果要构建一个大根堆,只能反过来操作 ``` python3 >>> nums1 = [2, 5, 1, 3, 4] >>> arr1 = [] >>> for i in range(len(nums1)): ... heapq.heappush(arr1, -nums1[i]) >>> for i in range(len(arr1)): ... print(-heapq.heappop(arr1)) ... 5 4 3 2 1 ``` 最后编辑:2024年04月23日 ©著作权归作者所有 赞 0 分享
叼茂SEO.bfbikes.com
看的我热血沸腾啊www.jiwenlaw.com
《洛城黑帮》欧美剧高清在线免费观看:https://www.jgz518.com/xingkong/116224.html
建议融入东方智慧,形成对话张力。
如何申请华纳公司账户?
新盛开户前客服电话咨询材料清单【1558--7291-507薇同1】
新盛开户官方客服电话 【1558--7291-507 薇同1】
新盛开户业务办理电话 【1558--7291-507 薇同1】
新盛开户联系电话大全 【1558--7291-507 薇同1】
华纳东方明珠客服电话是多少?(?183-8890-9465—《?薇-STS5099】【?扣6011643??】
新盛客服电话是多少?(?183-8890-9465—《?薇-STS5099】【
新盛开户专线联系方式?(?183-8890--9465—《?薇-STS5099】【?扣6011643??】
新盛客服开户电话全攻略,让娱乐更顺畅!(?183-8890--9465—《?薇-STS5099】客服开户流程,华纳新盛客服开户流程图(?183-8890--9465—《?薇-STS5099】
寻找华纳圣淘沙公司开户代理(183-8890-9465薇-STS5099】
华纳圣淘沙官方合作开户渠道(183-8890-9465薇-STS5099】
华纳圣淘沙公司开户代理服务(183-8890-9465薇-STS5099】
华纳圣淘沙公司开户咨询热线(183-8890-9465薇-STS5099】
联系客服了解华纳圣淘沙开户
(183-8890-9465薇-STS5099】
华纳圣淘沙公司开户专属顾问
(183-8890-9465薇-STS5099】
外围空降单一晚多少a0gz.cn