当前位置: 首页 > news >正文

python日常编程技巧分享

Python这语言,上手是很容易,但是精通难。用久了你就会发现,好代码和能跑的代码之间,差别还是很大的。

1. 列表推导,但别过头

列表推导简洁,但得知道分寸:

# 刚好
squares = [x**2 for x in range(10) if x % 2 == 0]# 过了就难读
matrix = [[x*y for y in range(5) if y != 0] for x in range(5) if x > 1]

两层嵌套是极限,再多就该拆开了。

2. 用enumerate拿索引

别再range(len(list))了:

# 旧的
for i in range(len(items)):print(i, items[i])# 新的
for i, item in enumerate(items, start=1):  # 还能指定起始值print(i, item)

3. 字典的setdefault

处理可能不存在的键:

data = {}
key = 'user'# 啰嗦版
if key not in data:data[key] = []
data[key].append('value')# 干净版
data.setdefault(key, []).append('value')

4. 用zip配对数据

同时遍历多个列表:

names = ['张三', '李四', '王五']
scores = [85, 92, 78]# 传统做法
for i in range(len(names)):print(names[i], scores[i])# 优雅做法
for name, score in zip(names, scores):print(name, score)

甚至能转成字典:

dict(zip(names, scores))  # {'张三': 85, '李四': 92, '王五': 78}

5. 解包操作符*

收集和展开数据:

# 函数传参
def show(name, score, city):print(f"{name}在{city}考了{score}分")data = ['张三', 85, '北京']
show(*data)  # 自动解包# 合并列表
a = [1, 2, 3]
b = [*a, 4, 5]  # [1, 2, 3, 4, 5]

6. 海象运算符 :=

Python 3.8+ 的好东西:

# 避免重复计算
while (line := input()) != 'quit':process(line)# 列表推导里也能用
results = [y for x in data if (y := process(x)) > 0]

7. 用get处理字典

取不存在的键时不报错:

config = {'theme': 'dark', 'lang': 'zh'}# 危险
mode = config['mode']  # KeyError!# 安全
mode = config.get('mode', 'light')  # 默认为'light'

8. 上下文管理器

不只是文件操作:

from contextlib import contextmanager@contextmanager
def timer(name):start = time.time()try:yieldfinally:print(f"{name}耗时: {time.time() - start:.2f}秒")# 使用
with timer('数据加载'):load_data()

9. 生成器省内存

处理大数据时:

# 列表占内存
def read_lines(file):return [line.strip() for line in file]# 生成器省内存
def read_lines_gen(file):for line in file:yield line.strip()# 用起来一样
for line in read_lines_gen(open('data.txt')):process(line)

10. 善用collections模块

标准库里的宝贝:

from collections import defaultdict, Counter# 自动初始化字典
dd = defaultdict(list)
dd['key'].append(1)  # 不用先检查key是否存在# 数东西
words = ['apple', 'banana', 'apple', 'orange']
count = Counter(words)  # {'apple': 2, 'banana': 1, 'orange': 1}

技巧是工具,不是目的。代码先是给人读的,其次才是给机器执行的。用最简单的写法解决问题,就是最好的技巧。

http://www.jsqmd.com/news/417198/

相关文章:

  • 成人益生菌怎么选?十大安全益生菌品牌推荐,抗幽护肠高活性,成人调理优选 - 博客万
  • 永辉购物卡怎么回收?学会流程、选择平台轻松变现 - 团团收购物卡回收
  • gitti
  • 2026中档装修全案公司排名|靠谱不踩坑(附避坑指南) - 品牌测评鉴赏家
  • 2026年草本泡脚液源头厂家选型指南:足浴泡脚液批发与定制代工专业推荐 - 品牌推荐官
  • 2026年精选客服系统厂商,含邮件营销对接、知识库管理与呼叫录音 - 品牌2025
  • 大润发购物卡线上回收靠谱平台推荐,流程详解及实用建议 - 团团收购物卡回收
  • 2026全案装修避坑指南,选对公司少走弯路 - 品牌测评鉴赏家
  • 找工作的平台有哪些?2026权威盘点,行业TOP1更省心 - 博客万
  • 2026年生命科学成像系统选型指南:三维成像/光谱成像/红外成像/生物成像/活细胞成像/活体成像系统专业厂家推荐 - 品牌推荐官
  • 2026正规全案装修哪家实惠?多城高性价比装企清单+避坑指南 - 品牌测评鉴赏家
  • 3家高端装修全案公司排名|预算50W+必看,博主实测无踩雷 - 品牌测评鉴赏家
  • 学长亲荐!MBA必备降AIGC工具 —— 千笔·降AIGC助手
  • 2026中档装修全案哪家好?全国口碑装企实测推荐,避坑不超支 - 品牌测评鉴赏家
  • Prompt Engineering指南
  • 专科生也能用!碾压级的降AIGC工具 —— 千笔·专业降AI率智能体
  • 基于深度学习的语音识别技术改进与实现毕业设计
  • 新疆大量元素水溶肥哪家好 - 中媒介
  • 探讨企业海外贸易推广,聚合AI外贸版性价比哪家高 - 工业设备
  • 基于深度学习的智能推荐算法研究毕设
  • 2026年精选呼叫中心厂商推荐,含实施服务、培训服务及售后保障 - 品牌2025
  • 盘点口碑不错的地板店,米罗尼地板店性价比高 - 工业品网
  • 给这家 200 人机械加工企业的落地建议(可直接拿去用)
  • 2026年精选推荐:呼叫中心定制开发、小型企业及全渠道智能厂商 - 品牌2025
  • 基于深度学习的人脸表情识别模型改进毕设源码
  • Java Web +办公管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 基于深度学习的医学影像分析系统设计与实现毕业设计源码
  • 基于深度学习的自然语言处理算法研究毕业设计
  • 直接上结论:MBA专属降AIGC软件,千笔·降AIGC助手 VS 笔捷Ai!
  • nuct产品售后管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】