基本信息
文件名称:第12章 Python的实用算法.pptx
文件大小:1.76 MB
总页数:36 页
更新时间:2025-06-11
总字数:约5.13千字
文档摘要

第12章Python的实用算法2025/6/101Lambda表达式;动态遍历;计算代数和与平均值;统计次数与计算最大、最小值;反转;累积计算;装饰函数;偏函数;过滤数据;映射数据;缝合数据;快速选择函数;索引排序函数;依次排序函数;numpy实用函数集锦。

2025/6/102Python的特色之一就是有许多内置的算法,本章结合实用问题讲解常用的内置算法和第三方提供的numpy模块的部分函数。

12.1Lambda表达式2025/6/103前面章节中的一些例子中已经使用过Lambda表达式,以下详细讲解Lambda表达式,以满足本章的需要。

2025/6/10412.1Lambda表达式Lambda表达式是一个匿名函数下列add()函数是一个通常的函数:

2025/6/10512.1Lambda表达式

2025/6/10612.1Lambda表达式

2025/6/10712.1Lambda表达式

12.2动态遍历2025/6/108遍历某种数据结构中的元素时,可以将元素传递给一个函数的参数实现动态遍历。

2025/6/10912.2动态遍历例子1ch12_1.py动态遍历整数列表、输出整数对应的二进制、八进制和十六进制。ch12_1.py动态遍历,输出整数的二进制、八进制和十六进制

2025/6/101012.3计算代数和与平均值例子2求和与平均值ch12_2.py内置函数sum(iterable)可以计算一个可迭代的数据结构iterative中的元素的代数和(元素必须可以求代数和),len(iterable)返回可迭代的数据结构iterable中元素的个数。在使用sum()函数时可以借助map()函数和Lambda表达式让sum()函数实现动态求和。ch12_2.py使用sum()函数计算列表、集合的代数和和以及平均值,并借助map()函数动态计算列表和集合的代数和。

2025/6/101112.4统计次数与计算最大、最小值例子3统计次数与计算最大、最小值ch12_3.pymax(iterable)函数、min(iterable)函数返回iterable中的最大值和最小值。输出了英文句子中各个单词、字母出现的次数,并输出一组数据中的最大、最小值。

2025/6/101212.5反转在Python中,对于array数组、列表、字符串等可以用索引访问元素的数据结构,都可以方便地得到其数据的反转,例如列表list的反转是list[::-1]、字符串text的反转是text[::-1]等。例子4反转与判断回文单词ch12_4.pych12_4.py反转字符串并判断回文单词。

2025/6/101312.6累积计算例子5计算连续和、阶乘与黄金分割ch12_5.pyfunctools模块的“reduce(lambdax,y:value,list)”函数对列表list进行累积计算。其中的Lambda表达式必须是两个参数,第一次计算时第1个参数取列表的首元素的值,y取x的下一个元素,以后每次计算时x取表达式的返回值value,而第2个参数y继续取下一个元素的值。如果列表长度为1,reduce()函数返回首元素的值(忽略Lambda表达式的返回值),如果是空列表,报告emptyiterable异常。ch12_5.py中使用reduce()计算连续和、阶乘和黄金分割(0.618…)的近似值。

12.7装饰函数2025/6/1014wraps是functools模块中的一个装饰器(也是一个函数),程序使用该装饰器可以装饰其他函数(称被其装饰的函数为被装饰函数),使得wrapper()函数的功能成为被装饰函数的功能(简单地说使得二者等同),例如使得wrapper()函数的返回值成为被装饰函数的返回值。

2025/6/101512.7装饰函数装饰函数思想是在不改变被装饰函数的代码的前提下改变了被装饰函数的功能。一个fly()函数模拟小鸟能飞行100米,即fly()函数的返回值是100,经过wraps()函数装饰后小鸟可以飞行150米,即fly()的返回值变成150(相当于给小鸟装上了一个电子翅膀)。wrapper函数实际上是对fly函数的装饰(包装),调用fly()时,实际上调用的是wrapper(),而wrapper内部又调用了func(即原始的fly函数)。

2025/6/101612.7装饰函数例子6使用装饰给英文单词添加翻译ch12_6.pyenglish.txtchinese.txt

12.8函数缓存2025/6/1017lru_cache()是functools模块中的一个函数,lru_cache()函数作装饰器应用于其他函数上以实现缓存机制。如果源文件中