跳到主要内容

list

List 列表

特性:动态数组、切片复制、原地修改、常用 API。

时间复杂度与扩容

  • 末尾 append/pop 摊还 O(1);插入/删除中间 O(n);
  • 扩容按比例增长,避免频繁扩容可用 list.extend 预填充或一次性构建。

切片与拷贝

  • 切片返回新列表:b = a[:]
  • 浅拷贝:list(a)/a.copy();深拷贝:copy.deepcopy(a)

常见陷阱

  • 可变默认参数:
def f(x=[]): ...  # 反例
def f(x=None):
if x is None: x = []
  • 乘法复制的共享:[[0]*3]*2 行共享同一子列表;应使用列表推导:[[0 for _ in range(3)] for _ in range(2)]