You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何更优雅地创建多个相同列表的独立副本?

优化二维微分方程迭代变量初始化的一行代码写法

你需要初始化三个独立的列表变量(y_nm1、y_n、y_np1)作为微分方程迭代的历史值,且每个变量都是初始值y0的副本,避免引用关联。这里提供几种更优雅的一行写法:

方案1:生成器表达式解包

这是最简洁且内存高效的写法,通过生成器批量生成y0的副本,再一次性解包赋值给三个变量:

from copy import copy

y_nm1, y_n, y_np1 = (copy(y0) for _ in range(3))

方案2:列表推导式解包

如果更习惯列表推导式的语法,也可以采用这种方式,逻辑与生成器表达式一致:

from copy import copy

y_nm1, y_n, y_np1 = [copy(y0) for _ in range(3)]

关键注意事项

  • 若y0是嵌套列表(二维微分方程常见的结构,比如[[x1, y1], [x2, y2]]),浅拷贝copy()无法完全断开嵌套元素的引用关联,此时需要改用deepcopy():
    from copy import deepcopy
    
    y_nm1, y_n, y_np1 = (deepcopy(y0) for _ in range(3))
    
  • 上述写法的核心优势是避免重复书写copy(y0),当需要初始化更多同类变量时,只需修改range()的参数即可,扩展性更强。

内容的提问来源于stack exchange,提问作者Truls Henriksson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 21:54:51