学习笔记Python 基础零碎知识

Posted SAP剑客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记Python 基础零碎知识相关的知识,希望对你有一定的参考价值。

Python 基础零碎知识

条件表达式

比如上面的if条件判断,我们可以用条件表达式(Conditional Expression)更加简洁的书写。

y = math.log(x) if x > 0 else float('nan')

— y的值在x大于0的时候是math.log(x),否则是float('nan')

再比如下面的递归函数:

一般来说,如果条件语句的两个条件分支都包含简单的返回或者对同一个变量进行赋值的表达式,那么这个语句可以转化为条件表达式。

列表理解

比如上面的函数,功能是接收一个字符串列表,然后将其首字母变成大写后进行返回。

我们可以使用列表理解(List Comprehension)将其以更加紧凑的方式书写。

方括号说明我们要构建一个新列表,方括号内的表达式指定了列表的元素,for子句表示我们要遍历的里序列。

列表理解还可以用于过滤操作,比如下例子:

列表理解难以调试,没法在循环内添加打印语句,建议只在计算一次就能得到结果的情况下使用。

生成器表达式

生成器表达式(Generator Expression)和列表理解有点类似,不同的是生成器表达式使用的是圆括号,而非方括号。

生成器表达式的结果是一个生成器对象,它不会一次把结果都计算出来,可以使用for循环来遍历所有值。

生成器对象会跟踪访问序列的位置,所以for循环会从上一个next所在的位置继续,一旦生成器遍历结束,再访问它就会抛出Stop Iteration异常。

通常会有sum、max、min等函数配合使用。

anyall

Python提供了一个内置函数any,它接收一个由布尔值组成的序列,并且其中任何一个元素值是True时就返回True。

而Python提供的另一个内置函数all,它接收一个由布尔值组成的序列,并且其中所有元素值是True时才返回True。

集合

Python中提供了一种内置类型—集合(set),它类似于没有值而只有键的字典。向一个集合添加元素很快,检查集合成员也很快,集合还提供了方法和操作符来进行常见的集合操作。

比如下面的例子,d1是一个字典,d2是一个单词列表,判断字典中的键哪个不在列表中,就可以简单的使用集合减法处理(方法difference或者操作符“-”)。

计数器

计数器(Counter)和集合类似,不同之处在于,如果一个元素出现超过一次,计算器会记录它出现了多少次。计数器定义在标准模块collections中,使用前需导入。

在访问计数器中不存在的元素时,不会抛出异常,会返回0,表示出现了0次。

计数器还提供了一个非常常用的方法most_common,返回一个值-频率对的列表,按照最常见的到最少见来排序。

defaultdict

标准模块collections中还提供了defaultdict,和字典类似,但是访问不存在的键,它会自动创建一个新值。

命名元组

Python中提供了命名元组“namedtuple”来更加简洁地创建上面这样的类。

第一个参数是需要创建的类名,第二个参数是对应包含的属性列表,以字符串表示。

返回的是一个类对象,该类会自动提供__init__和__str__方法,所以不需要写它们。

收集关键词参数

上面的函数可以使用任意个数的按位实参来调用,但是“*”操作符并不会收集关键词实参,若想要收集关键字实参,可以使用“**”操作符,收集的结果是一个将关键字映射到值的字典。

 

以上是关于学习笔记Python 基础零碎知识的主要内容,如果未能解决你的问题,请参考以下文章

Python初学者零碎基础笔记

Shell脚本笔记一些零碎的基础知识

学习知识零碎笔记

R语言学习笔记(十八):零碎知识点46-50

网络学习笔记之零碎知识点

我的博客笔记汇总版