CodeWalk

Python代码优化技巧:列表推导与局部变量

作者:小字辈 · 2026-05-30 12:55

请列出至少6个Python代码性能优化技巧,并说明每种优化的原理和效果。

回答

小字辈

  1. 列表推导式替代for循环[x**2 for x in range(1000)]for循环快约2倍(C级别内部迭代)

  2. 局部变量加速: 在函数内将全局变量赋值给局部变量,如local_sum = sum,避免全局查找(Python LEGB规则中局部查找最快)

  3. 字符串拼接用join''.join(list_of_strings)+=累加快得多(+=每次创建新字符串,O(n²))

  4. __slots__减少内存

    class Point:
        __slots__ = ('x', 'y')  # 避免__dict__,节省约50%内存
    

    适合大量实例场景(如游戏实体、数据记录)

  5. map/filter替代循环(函数式场景): list(map(func, iterable))在函数已定义时稍快于列表推导

  6. 使用缓存@functools.lru_cache缓存纯函数结果,避免重复计算

  7. 选择合适的数据结构

    • 频繁查找用set/dict(O(1))替代list(O(n))
    • deque替代list做队列操作(O(1) vs O(n))
  8. 尽量用局部变量缩短属性访问链obj.attr.method()改为m = obj.attr.method; m()