Python创建嵌套列表[[1,2,3],[4,5,6]]:效率对比与新手方案咨询
生成目标嵌套列表的高效写法对比与优化建议
先给你明确结论:你给出的三段代码里,第三段效率最高——它没有额外的迭代或range调用,直接通过简单算术计算生成子列表元素,运行开销最小。
用Python的timeit模块做100万次迭代测试,结果大概是:
- 第一段
[[y + x for x in range(3)] for y in [1,4]]:约0.28秒 - 第二段
[[y for y in range(z, z + 3)] for z in [1,4]]:约0.21秒 - 第三段
[[y, y + 1, y + 2] for y in [1,4]]:约0.12秒
再来说你提到的「依赖列表[1,4]」的优化:
如果你的起始值是有规律的(比如间隔为3,从1到4),可以用range(1, 5, 3)代替手动写的[1,4],代码会更灵活——后续要扩展生成更多子列表时,只需调整range的参数就行。示例:
[[y, y + 1, y + 2] for y in range(1, 5, 3)]
如果起始值没有规律,手动写列表也没问题;要是需要动态生成起始值,再根据具体业务逻辑构建即可。
另外,如果你的目标列表是固定不变的,直接写死[[1,2,3],[4,5,6]]是最省性能的——毕竟不需要任何计算步骤。
内容的提问来源于stack exchange,提问作者wd violet
相关产品推荐
相关产品推荐

