当前位置:首页>python>来自Python扩展包的七伤拳

来自Python扩展包的七伤拳

  • 2026-09-03 10:21:37
来自Python扩展包的七伤拳
总有一些取舍需要考量,但为了精简本体,他们成了扩展功能。本文对7个Python扩展功能来个七伤拳的演练。

1. 用defaultdict 避免计数报错

 🌟🌟🌟 避免 KeyError,在字典中访问未存在的键时自动初始化。

from collections import defaultdict# 默认值默认为空字符串counter = defaultdict(int)counter['a'] += 1counter['b'] += 1print(counter['a'])# 输出:1

2. Counter统计频率

 🌟🌟🌟 专门用于统计元素计数的类,支持多种集合类型。

from collections import Counterwords = ['python', 'code', 'code', 'python', 'test']freq = Counter(words)print(freq.most_common(2))  # 输出:# [('python', 2), ('code', 2)] 

3. logging模块替代 print

 🌟🌟🌟 专业日志记录,支持分级、路由和异步处理,代码更清晰。

import loggingimport sys# 配置logging.basicConfig(level=logging.INFO)logger = logging.getLogger(__name__)# 使用logger.info("这是一个信息日志")logger.debug("这是一个调试日志")

4. 使用 sys.argv 让脚本文件运行时有参数可用

 🌟🌟🌟 从操作系统命令行读取用户输入的参数。

import sys# 获取参数,sys.argv[0] 是脚本名if len(sys.argv) > 1:    print(f"第一个参数是:{sys.argv[1]}")else:    print("未提供参数")# bash/cmd等命令行环境python script.py para=2 

5. 使用 glob模块匹配文件

 🌟🌟🌟 替代通配符 *,处理复杂文件路径模式。

import glob# 获取当前目录下所有 .txt 文件files = glob.glob('*.txt')# 或更复杂的正则路径files = glob.glob('/path/to/**/*')

6. functools.lru_cache缓存

 🌟🌟🌟 自动缓存函数返回结果,减少重复计算开销。

from functools import lru_cache@lru_cache(maxsize=128)def fib(n):    if n < 2:        return n    return fib(n-1) + fib(n-2)# 调用时直接返回缓存值,无需额外内存管理fib(10)

7. itertools.chain合并迭代器

 🌟🌟🌟 惰性合并多个迭代器,节省内存(适合大数据流)。

from itertools import chainiterator1 = range(3)iterator2 = range(3, 6)# 合并成一个新的迭代器merged = list(chain(iterator1, iterator2))# 输出 [0, 1, 2, 3, 4, 5]

往期精彩:

1、Python入门合集

Python入门:01 何谓Python?
Python入门:02 工欲善其器,必先利其器
Python入门:03 程序运行
Python入门:04 编程常识
Python入门:05 变量(1)-何谓变量?
Python入门:05 变量(2)-数据类型
Python入门:05 变量(3)-类型转换
Python入门:06 数据运算
Python入门:07 字符串(1)-基础
Python入门:07 字符串(2)-切片操作
Python入门:07 字符串(3)-字符串格式化的三种方法
Python入门:08 顺序、选择与循环
Python入门:09 函数
Python入门:10 类(1)-类的定义
Python入门:10 类(2)-类的继承
Python入门:11 模块与包
Python入门:12 文件操作
Python入门:13 异常处理
Python入门:14 OS操作
Python入门(番外篇):命名空间和作用域
Python入门(番外篇):函数装饰器
Python入门(番外篇):推导式
Python入门(番外篇):生成器
Python入门(番外篇):上下文管理器

2、Pandas入门合集

Pandas入门:01 数据结构之Series

Pandas入门:02 数据结构之DataFrame

Pandas入门:03 切片

Pandas入门:04 概览、属性、广播与视图

Pandas入门:05 空值的处理

Pandas入门:06 数据迭代

Pandas入门:07 批量计算

Pandas入门:08 分组计算与分类汇总

Pandas入门:09 合并与匹配

Pandas入门:10 滚动计算

Pandas入门:11 环比变化分析

Pandas入门:12 时间序列分析基础

Pandas入门:13 表的重构/变形

Pandas入门:14 数据分裂

Pandas技巧:数据选择1

Pandas技巧:数据选择2

Pandas技巧:字符串数据处理

Pandas技巧:数据可视化

Pandas技巧:索引

Pandas技巧:层次化索引

Pandas技巧:连续数据的分组

☆☆☆ End ☆☆☆转角  ·  遇见  ·  程序猿
-------------------------
那是一抹淡淡的微光

它是数字世界里的一把杀猪刀

却总能巧夺天工

它的世界是纯粹0、1组合

却总能创造无尽幻想

......

本公众号关注数据价值分析、编程学习,将不定期更新社会热点数据分析结果、编程技巧,分享数据分析工具、方法、学习等内容,欢迎有兴趣的小伙伴加入。

最新文章

随机文章