Python 编程进阶——10个提升效率的实用技巧
Python 语法简单但用好它的高级特性可以让代码更简洁、更高效。这篇文章总结了 10 个日常开发中最实用的 Python 技巧。1. 列表推导式代替传统 for 循环一行搞定# ❌ 传统写法squares[]foriinrange(10):squares.append(i*i)# ✅ 列表推导式一行搞定squares[i*iforiinrange(10)]# 带条件筛选even_squares[i*iforiinrange(10)ifi%20]# 结果: [0, 4, 16, 36, 64]2. 字典合并# Python 3.9dict1{name:张三,age:20}dict2{class:大数据2301,score:88}# ✅ 使用 | 运算符mergeddict1|dict2print(merged)# {name: 张三, age: 20, class: 大数据2301, score: 88}3. f-string 格式化name张三score88.5# ✅ f-string推荐print(f{name}的成绩是{score}分)print(f{name}的成绩是{score:.1f}分)# 保留一位小数print(f{name:10}的成绩)# 左对齐占10位print(f分数:{score:6.1f})# 右对齐共6位4. enumerate 获取索引students[张三,李四,王五]# ❌ 传统写法foriinrange(len(students)):print(i,students[i])# ✅ enumeratefori,nameinenumerate(students,start1):print(f第{i}名:{name})# 输出# 第1名: 张三# 第2名: 李四# 第3名: 王五5. zip 并行遍历names[张三,李四,王五]scores[88,92,76]classes[大数据2301,大数据2301,大数据2302]# 同时遍历多个列表forname,score,clsinzip(names,scores,classes):print(f{name}-{cls}-{score}分)# 合并为字典resultdict(zip(names,scores))print(result)# {张三: 88, 李四: 92, 王五: 76}6. 使用 collections 模块fromcollectionsimportCounter,defaultdict# Counter统计频数scores[85,92,78,85,92,85,60]countCounter(scores)print(count)# Counter({85: 3, 92: 2, 78: 1, 60: 1})print(count.most_common(2))# [(85, 3), (92, 2)]# defaultdict自动初始化datadefaultdict(list)data[A班].append(张三)data[A班].append(李四)data[B班].append(王五)print(dict(data))# {A班: [张三, 李四], B班: [王五]}7. any / all 判断scores[85,92,45,78,60]# 是否有不及格的has_failany(s60forsinscores)# True# 是否都及格了all_passall(s60forsinscores)# False# 是否都没有优秀90no_excellentall(s90forsinscores)# False8. lambda 匿名函数students[{name:张三,score:88},{name:李四,score:92},{name:王五,score:76},]# 按成绩排序students.sort(keylambdas:s[score],reverseTrue)# 提取字段nameslist(map(lambdas:s[name],students))print(names)# [李四, 张三, 王五]9. 文件操作利器——pathlibfrompathlibimportPath# 创建路径data_dirPath(data)data_dir.mkdir(exist_okTrue)# 遍历文件forfindata_dir.glob(*.csv):print(f.name)# 文件名print(f.stem)# 不带后缀print(f.suffix)# 后缀名print(f.stat().st_size)# 文件大小# 读写文件Path(output.txt).write_text(Hello,encodingutf-8)contentPath(output.txt).read_text(encodingutf-8)10. 装饰器——统计函数耗时importtimefromfunctoolsimportwrapsdeftimer(func):统计函数执行时间的装饰器wraps(func)defwrapper(*args,**kwargs):starttime.time()resultfunc(*args,**kwargs)costtime.time()-startprint(f{func.__name__}耗时:{cost:.3f}秒)returnresultreturnwrappertimerdefcalculate_sum(n):returnsum(range(n))resultcalculate_sum(10000000)print(f结果:{result})# 输出# calculate_sum 耗时: 0.256秒# 结果: 49999995000000总结这 10 个技巧覆盖了日常开发中最常用的 Python 高级特性。建议收藏起来写代码时翻一翻慢慢养成习惯后代码质量和效率都会明显提升。 觉得有用的话点赞 关注【张老师技术栈】吧每周更新 Java/Python/爬虫 实战干货不让你白来。