欢迎大家关注新博主,博主初来乍到,您的关注将是我更新的最大动力,谢谢
人生苦短,我用 python ,相信这是很多学习 py 使用 py 的程序员的信条。今天小编分享10个 python 函数,让你早点下班。
pprint
以前我们在使用print打印数据量巨大的 json 数据的时候,在控制台显示的结果会编程一行,是非不利于我们开发调试查看。
这种场景下,我们完全可以使用 pprint 包的方法输出更加直观的结果:
defaultdict
defaultdict 是 Python 中 collections 模块提供的一个字典子类,它在访问不存在的键时会自动初始化这个键对应的值为默认值。
这里使用 defaultdict 可以让我们自动初始化不存在的键的默认值,因为如果我们直接初始化 {} 字典的时候,在访问不存在的键时就会报错
pickle
当我们在 python 中需要保存一些数据结构,例如 对象、列表、字典等等时,就需要借助 json 完成一些数据序列化和结构调整才可以保存到文件中,十分繁琐。
但是我们可以借助 pickle 模块在 Python 中用于序列化和反序列化对象。这使得你可以将几乎任何 Python 对象保存到文件中,并在以后重新加载这些对象。
下面是一个使用 pickle 模块的基本示例,包括如何保存对象到文件以及如何从文件中恢复对象。
保存内容到文件
恢复内容到文件
不管什么格式,直接就保存,让我们不需要考虑保存的内容的格式,从而让我们只需要关注业务即可,无需再考虑这些数据的转换。
any
any() 函数在 Python 中用于检查一个可迭代对象(如列表、元组等)中是否有至少一个元素为真(True)。如果存在至少一个元素为真,则 any() 返回 True;否则,如果所有元素均为假(False),则返回 False。
使用 any 就可以简化我们的逻辑,同时也可以提升代码的效率,因为只要有一个符合条件就会终止循环直接返回结果。
all
all() 函数在 Python 中用于检查一个可迭代对象(如列表、元组等)中的所有元素是否都为真(True)。如果所有元素都为真,则 all() 返回 True;否则,只要有一个元素为假(False),则返回 False。
使用 all 就可以简化我们的逻辑,使得我们的代码更加优雅和高效。
collections.Counter
collections.Counter 是 Python 中 collections 模块提供的一个容器子类,用于方便地计数可哈希对象的出现次数。它是一个字典的子类,其中元素作为键,其计数作为值。
使用 Counter 类可以让我们快速获取列表或元祖中的元素的相关计数。
timeit.timeit
timeit.timeit 是 Python 中用于测量小代码片段执行时间的模块。它提供了一种简单有效的方式来评估代码片段的运行时间,这对于优化代码性能非常有用。
timeit.timeit 是一个非常有用的工具,用于测量代码片段的执行时间。它可以帮助我们识别代码中的瓶颈,并进行性能优化。
itertools.chain
itertools.chain 是 Python 中 itertools 模块提供的一个函数,用于将多个可迭代对象连接起来形成一个新的迭代器。这对于需要依次迭代多个序列的情况非常有用。
itertools.chain 是一个非常有用的工具,用于将多个可迭代对象连接成一个迭代器。它可以简化多个序列的迭代过程,特别是在需要依次处理多个列表或集合的情况下。 因此使用 itertools.chain 可以提高代码的可读性和效率。
但是需要注意的是:
itertools.chain 返回的是一个迭代器,这意味着它只能被遍历一次。如果需要多次遍历相同的序列,可以使用 itertools.chain.from_iterable。chain 不会复制原始的可迭代对象,而是直接迭代它们dataclass
@dataclass 是 Python 3.7 之后引入的一个装饰器,用于简化类的定义。它自动为类生成了一些常用的特殊方法,如 __init__、__repr__、__eq__ 等,从而减少了样板代码的编写工作。这使得定义具有数据属性的类变得更加简洁和高效。
使用 @dataclass 可以大大提高我们的代码的可读性和效率。
值得注意的是:
@dataclass 默认为类的所有属性生成构造函数、__repr__ 和 __eq__ 方法。可以使用 @dataclass 的选项来自定义行为,例如 init=False、repr=False 等。@dataclass 支持默认值,可以通过在类定义中为属性赋值来设置默认值。如果需要更复杂的初始化逻辑或自定义特殊方法,可以在类定义中手动添加这些方法。小结
如果您有疑问或者其他问题,欢迎留言评论,大家一起探讨,一起进步~
欢迎点赞、关注➕、转发~
版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//chanye/jiguang/4577.html