20个超实用Python技巧,告别冗余代码,新手也能写出高质量代码
✨前言
很多新手写Python代码时,习惯堆砌循环、判断语句,代码冗长、可读性差、效率还低。其实Python自带很多极简语法和内置技巧,熟练掌握后,能大幅精简代码、提升运行效率,让代码更优雅、更专业。
今天整理了20个高频实用Python技巧,覆盖数据处理、循环遍历、字符串操作、列表字典优化等日常开发场景,零基础也能轻松看懂,建议收藏常备!
本文所有代码均可直接运行,适配Python3.x版本,日常爬虫、数据分析、后端开发、脚本编写都能用得上。
一、极简数据处理技巧
1. 一行代码交换两个变量
常规写法需要借助中间变量,Python可直接极简交换,是最基础也最常用的技巧:
# 传统写法 a = 1 b = 2 temp = a a = b b = temp # Python极简写法 a, b = 1, 2 a, b = b, a print(a, b) # 输出:2 1
2. 列表快速去重(保留顺序)
普通set去重会打乱原有顺序,Python3.7+字典有序特性,可实现有序去重:
nums = [2, 3, 1, 2, 3, 4, 1] # 有序去重 new_nums = list(dict.fromkeys(nums)) print(new_nums) # 输出:[2, 3, 1, 4]
3. 列表/元组快速解包
无需逐个索引取值,高效解包序列数据:
data = ["Python", 3.11, 100] name, version, score = data print(name, version, score) # 输出:Python 3.11 100 # 不定长解包,适配未知长度序列 first, *middle, last = [1, 2, 3, 4, 5] print(first, middle, last) # 输出:1 [2, 3, 4] 5
4. 一行代码实现列表推导式
替代for循环赋值,精简代码,运行效率更高:
# 常规循环 res = [] for i in range(10): if i % 2 == 0: res.append(i) # 列表推导式极简写法 res = [i for i in range(10) if i % 2 == 0] print(res) # 输出:[0, 2, 4, 6, 8]
5. 字典一键合并
无需循环遍历拼接,快速合并多个字典:
dict1 = {"name": "张三", "age": 20} dict2 = {"gender": "男", "score": 90} # 合并字典,后者覆盖前者重复key new_dict = {**dict1, **dict2} print(new_dict)
二、循环与遍历优化技巧
6. enumerate 带索引遍历
告别手动定义index变量,同时获取索引和元素:
fruits = ["苹果", "香蕉", "橙子"] for idx, item in enumerate(fruits): print(f"索引{idx}:{item}")
7. zip 并行遍历多个序列
同时遍历两个/多个列表,一一对应匹配:
names = ["张三", "李四", "王五"] ages = [20, 22, 19] for name, age in zip(names, ages): print(f"{name}:{age}岁")
8. 反向遍历序列
无需切片反转,原生函数高效反向遍历:
nums = [1, 2, 3, 4, 5] for i in reversed(nums): print(i) # 倒序输出5-1
9. 快速判断列表元素是否全部满足条件
all()/any() 替代多层判断,极简校验数据:
nums = [2, 4, 6, 8] # all:所有元素满足条件返回True print(all(i % 2 == 0 for i in nums)) # True # any:任意一个元素满足条件返回True print(any(i > 5 for i in nums)) # True
三、字符串高效处理技巧
10. f-string 格式化字符串
替代%和format,语法更简洁、可读性更强(Python3.6+推荐):
name = "Python" version = 3.11 msg = f"当前使用{name}版本:{version}" print(msg)
11. 字符串列表快速拼接
避免循环拼接字符串(效率极低),用join一键拼接:
str_list = ["Hello", "Python", "World"] res = " ".join(str_list) print(res) # 输出:Hello Python World
12. 字符串首尾空白快速清除
text = " Python 技巧 " print(text.strip()) # 清除首尾空格 print(text.lstrip()) # 清除左侧空格 print(text.rstrip()) # 清除右侧空格
13. 字符串翻转最简写法
text = "123456" print(text[::-1]) # 输出:654321
四、实用高阶极简技巧
14. 一行代码实现多变量赋值
# 批量赋值 a, b, c = 10, 20, 30 # 多变量赋相同值 x = y = z = 0
15. 三元表达式简化if判断
简单条件判断,一行代码搞定,替代多行if-else:
age = 18 res = "成年" if age >= 18 else "未成年" print(res)
16. 快速获取列表最大/最小索引
nums = [5, 2, 9, 1, 7] max_idx = nums.index(max(nums)) min_idx = nums.index(min(nums)) print("最大值索引:", max_idx) print("最小值索引:", min_idx)
17. 计数器快速统计元素频次
无需手动遍历计数,collections.Counter一键统计:
from collections import Counter words = ["a", "b", "a", "c", "b", "a"] count = Counter(words) print(count) # 输出:Counter({'a': 3, 'b': 2, 'c': 1}) print(count["a"]) # 获取指定元素频次
18. 一键排序复杂数据
sort+lambda实现列表、字典自定义排序:
# 按字典key/value排序 user = [{"name": "张三", "age": 20}, {"name": "李四", "age": 18}] user.sort(key=lambda x: x["age"]) print(user)
19. 上下文管理器自动关闭文件
告别手动close(),自动释放资源,避免文件泄露:
# 极简文件读写 with open("test.txt", "w", encoding="utf-8") as f: f.write("Python技巧分享") with open("test.txt", "r", encoding="utf-8") as f: content = f.read() print(content)
20. 一行代码实现阶乘运算
借助math库极简实现数学常用运算:
import math print(math.factorial(5)) # 5! = 120
五、总结
以上20个Python实用技巧,都是日常开发中高频、易上手、提效显著的用法。熟练运用这些语法,能彻底告别“流水账式”代码,让代码更简洁、优雅、高效。
Python的核心优势就是简洁优雅,很多场景下不需要冗余的循环和判断,巧用内置语法和标准库,就能事半功倍。
后续会持续更新Python高阶技巧、爬虫实战、数据分析、避坑指南等干货,欢迎点赞+收藏+关注!
💡 往期推荐
1. Python新手必避的10个代码坑 2. 零基础快速上手Python列表、字典核心用法 3. 超实用Python爬虫极简代码合集
