网站首页 > 技术文章 正文
欢迎大家关注新博主,博主初来乍到,您的关注将是我更新的最大动力,谢谢
人生苦短,我用 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 支持默认值,可以通过在类定义中为属性赋值来设置默认值。
- 如果需要更复杂的初始化逻辑或自定义特殊方法,可以在类定义中手动添加这些方法。
小结
如果您有疑问或者其他问题,欢迎留言评论,大家一起探讨,一起进步~
欢迎点赞、关注、转发~
- 上一篇: Python 函数的四种参数,你了解吗
- 下一篇: Python 函数进阶的10大技巧,不允许你还不会
猜你喜欢
- 2025-06-03 这3个高级Python函数,不能再被你忽略了
- 2025-06-03 python组合函数不允许你还不会的 10 个高效技巧
- 2025-06-03 Python内置函数range(python内置函数大全表)
- 2025-06-03 你不得不知道的10个最危险的Python函数
- 2025-06-03 告别重复,打造你的代码工具箱:Python函数深度解析
- 2025-06-03 30天学会Python编程:6. Python函数编程
- 2025-06-03 python入门到脱坑 函数—函数的调用
- 2025-06-03 Python内置函数指南(python内置函数有哪些)
- 2025-06-03 PYTHON函数参数详解(python函数参数的类型)
- 2025-06-03 Python程序员都应该学习掌握的的25个最基本内置函数
- 263℃Python短文,Python中的嵌套条件语句(六)
- 262℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 256℃Python实现字符串小写转大写并写入文件
- 255℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 115℃原来2025是完美的平方年,一起探索六种平方的算吧
- 96℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 88℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)