刚学习Python,总结Python中常用的模块和一些高级语法,方便以后查询使用
常用模块 logging模块
用于日志记录,deep learning 中经常用到
https://www.cnblogs.com/Nicholas0707/p/9021672.html
高级函数 filter(function, iterable)
用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表,做法是依次将序列的值传入function中,如果返回Flase则过滤
- function一定要有返回值,None默认值为None(False)
将Iterable中的每个元素传入function中得到的值组成一个新的seq
- map()函数不改变原有的 list,而是返回一个新的 list,利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。
- python3中,返回是一个迭代器,python2中返回的是list
- function一定要有返回值,通常用lambda定义,如果function不返回任何值,则map的结果是None组成的seq
itemgetter用于获取对象的指定维的数据,参数为一些序号,但是itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值,attrgetter用于获取对象的某个属性值,通常用在类中,两者可以和map、sorted等函数结合使用。
具体用法如:
b=operator.itemgetter(1)#定义函数b,获取对象的第1个域的值
x=b(a)#获取a的第一个域的值
reduce(function, sequence, initial)
function :有两个参数的函数, 必需参数
sequence :tuple ,list ,dictionary, string等可迭代物,必需参数
initial :初始值, 可选参数
运行过程:首先把seq前两个元素传给function,function加工后,把得到的结果和seq第三个元素作为两个参数传给函数参数, 函数加工后得到的结果又和第四个元素作为两个参数传给函数参数,依次类推。 如果传入了 initial 值, 那么首先传的就不是 seq 的第一个和第二个元素,而是 initial值和 seq第一个元素。经过这样的累计计算之后合并序列到一个单一返回值,initial的值很重要
sorted(iterable, key, reverse=True)
key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None
- reverse是一个布尔值。如果设置为True,列表元素将被倒序排列,默认为FALSE
- 可以使用list的list.sort()方法进行排序。这个方法会修改原始的list(返回值为None),list.sort()方法效率更高,但是只能用在list上
- key可以配合使用operator中提供的itemgetter(可以指定多级排序)和attrgetter(对对象进行排序)
lambda argument_list: expression
- lambda输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值
通常用到map、reduce、filter、sorted等函数式编程中
该函数返回一个以元组为元素的列表,其中第 i 个元组包含每个参数序列的第 i 个元素。只有一个参数时,它返回一个1元组的列表,zip(*)作用与之相反
- 长度处理:返回的列表长度被截断为最短的参数序列的长度。
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)