Skip to main content
 Web开发网 » 编程语言 » Python语言

关于python,有哪些实用的知识点或者小技巧?

2021年11月25日6050百度已收录

本文邀请pany来回答,以下是他基于工作经验罗列出来的关于python的一些实用知识点和小技巧,希望对你有所帮助~

文章不旨在概念的介绍和深挖,或者酷炫的第三方库介绍。更多是站在实用性角度简明快速罗列自认为颇为有用的知识点或者技巧。为提高代码的效率或可读性,便利性等添砖加瓦。经验之谈,欢迎交流和拍砖。字符串字符拼接,join。

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第1张

这里需要强调下,任何字符相关的可迭代对象都可以使用join。除了set,tuple外,类句柄对象同样可以使用join。

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第2张

关键字格式化

除了我们常用的 %s进行格式化外,其实还可以按照关键字格式化,对于比较多变量时的情况,有利于提高代码的可读性。

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第3张

当然 format可以类似地

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第4张

行分割

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第5张

字符分隔

split(rsplit)其实时有第二个参数的,表示按顺序分隔几次,类似 ‘指定数目的非贪婪分隔’

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第6张

内容重复的字符串

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第7张

多行缩进处理

标准库的textwrap.dedent 可以删除源文本中各行行首的共同缩进部分

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第8张

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第9张

标准库textwrap还有其他一些方法处理文本格式,例如fill 设定行宽度和首行缩减,indent 添加行前缀等等。

字典setdefault

给字典设置(增加)新的键,存在就不设置(获取当前key对应的值),不存在就设置并返回当前key对应的值

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第10张

update,更新字典

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第11张

fromkeys(seq [, value])

创建一个新字典,序列seq的元素为键,value为字典所有键对应的初始值(不指定为None)。

类似的功能其实也可以通过defaultdict来实现,后面会举例。

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第12张

标准库collections 的 defaultdict 和 OrderedDict

defaultdict类接受一个类型作为参数,当所访问的键不存在的时候,可以实例化一个指定类型空值作为默认值

统计词频

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第13张

defaultdict类还使用任何不带参的函数,该函数的返回值作为默认值,这样可以实现多层key默认值的指定。

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第14张

所以defaultdict可以覆盖setdefault的使用场景,人倾向使用defaultdict,更加方便简洁

模仿 fromkeys

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第15张

OrderedDict

python的字典是无序的, OrderedDict可以保留key的顺序信息

OrderedDict的Key会按照插入的顺序排列

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第16张

json化后可以保留顺序

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第17张

列表生成式

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第18张

生成式中的判断

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第19张

生成式多层嵌套

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第20张

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第21张

但是多层生成式不推荐过度使用,可能会导致可读性更差。列表的索引有不少灵活的用法:

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第22张

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第23张

元素重复的序列

* 运算符可生成 元素重复的序列

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第24张

在for循环中一同拿到索引和元素

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第25张

其实 enumerate 函数的可使用范围也包括所有的可迭代对象

例如文件句柄

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第26张

在列表中查找

除了使用index()方法返回查找元素的索引外。对于复杂点的元素可以使用生成器及其next方法

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第27张

Set集合生成式

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第28张

实际上{1,2,3} 相当于 set([1,2,3])

set支持 len in join

删除元素: remove 和 discard

二者的区别在于,如果被指定删除的不存在时 remove 会抛出KeyError异常,而discard则不会

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第29张

对集合添加多项

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第30张

集合运算

推荐使用运算符而不是set方法函数,运算符看起来更简洁,有更好的可读性

关于python,有哪些实用的知识点或者小技巧?  Python开发技巧 第31张

如果读完此文对你有帮助,请点个赞或者转发让更多人知道哦~

评论列表暂无评论
发表评论
微信