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


- #问答
  • 1、 关于python,有哪些实用的知识点或者小技巧?

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

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

    字符串

    字符拼接,join。

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

    关键字格式化

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

    当然format可以类似地

    行分割

    字符分隔

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

    内容重复的字符串

    多行缩进处理

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

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

    字典

    setdefault

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

    update,更新字典

    fromkeys(seq[,value])

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

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

    标准库collections的defaultdict和OrderedDict

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

    统计词频

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

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

    模仿fromkeys

    OrderedDict

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

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

    json化后可以保留顺序

    列表

    生成式

    生成式中的判断

    生成式多层嵌套

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

    元素重复的序列

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

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

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

    例如文件句柄

    在列表中查找

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

    Set

    集合生成式

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

    set支持leninjoin

    删除元素:remove和discard

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

    对集合添加多项

    集合运算

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

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

Related Content: