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

Python 3中如何一行赋值多个同结构嵌套列表?

一行代码同时赋值多个独立的嵌套列表

当然可以实现!你的思路方向是对的,不过要注意避开列表浅拷贝的坑——直接用乘法会导致三个变量共享同一个列表对象,修改其中一个会影响另外两个。

正确的写法

你可以用生成器表达式或者列表推导式,一次性生成三个独立的[[] for _ in range(6)]结构,然后解包赋值给a、b、c:

方法1:生成器表达式(更高效,无中间列表)

a, b, c = ([[] for _ in range(6)] for _ in range(3))

方法2:列表推导式

a, b, c = [[[] for _ in range(6)] for _ in range(3)]

为什么不能直接用乘法?

如果写成下面这种形式:

a, b, c = [[] for _ in range(6)] * 3

会导致a、b、c指向同一个列表对象。比如你修改a[0].append(1),会发现b[0]和c[0]也变成了[1],这显然不是你想要的结果。

验证独立性

运行下面的代码可以确认三个变量是完全独立的:

a, b, c = ([[] for _ in range(6)] for _ in range(3))
a[0].append(42)
print(a[0])  # 输出: [42]
print(b[0])  # 输出: []
print(c[0])  # 输出: []

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:06:12