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))

掌握这些技巧可以大大提高开发效率。