Python 30 个实用技巧
本文整理 30 个 Python 开发中的实用技巧。
1. 交换变量
a, b = b, a
2. 多行字符串
text = """
这是一段
多行文本
"""
3. 列表推导式
[x for x in range(10) if x % 2 == 0]
4. 集合去重
unique = list(set(duplicates))
5. 三元运算
result = "正数" if x > 0 else "非正数"
6. 快速反转
reversed_list = list[::-1]
7. 字典合并
{**dict1, **dict2}
8. 列表转字符串
",".join(list)
9. 链式比较
0 < x < 10
10. 计数器
from collections import Counter
Counter(list)
11. 默认字典
from collections import defaultdict
d = defaultdict(int)
12. 命名元组
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
13. 链式函数
# pipe 风格
( x * 2 | str | len )
14. 列表分块
[list[i:i+n] for i in range(0, len(list), n)]
15. 快速查找
any(x > 0 for x in list)
all(x > 0 for x in list)
16. 展开嵌套列表
[item for sublist in list for item in sublist]
17. 获取索引
for i, v in enumerate(list):
pass
18. 条件赋值
x = a if condition else b
19. 位运算判断奇偶
x % 2 == 0 # 或
x & 1 == 0
20. 快速创建列表
[0] * 10 # [0,0,0,...]
21. 解包赋值
a, *b, c = [1, 2, 3, 4, 5]
# a=1, b=[2,3,4], c=5
22. 函数柯里化
def add(a):
return lambda b: a + b
23. 延迟执行
lazy = lambda: expensive_func()
24. 滑动窗口
from itertools import islice
def window(seq, n=2):
it = iter(seq)
result = tuple(islice(it, n))
if len(result) == n:
yield result
for elem in it:
result = result[1:] + (elem,)
yield result
25. 频率最高
Counter(list).most_common(1)[0]
26. 带默认值的 get
dict.get(key, default)
27. zip 配对
dict(zip(keys, values))
28. 字符串格式化
f"{name} is {age} years old"
29. 类型检查
isinstance(x, (int, float))
30. 惰性求值
# 生成器表达式代替列表推导式
(x**2 for x in range(1000000))
掌握这些技巧可以大大提高开发效率。