Skip to main content
 首页 » 编程设计

Python:分配多个嵌套列表的最短方法是什么

2025年05月04日12lovecherry

我有不同的嵌套列表:

a = [[] for e in range(6)] 
b = [[] for e in range(6)] 
c = [[] for e in range(6)] 

鉴于这些列表具有相似的结构,是否可以同时(在一行中)分配它们? 我在想这样的事情:

a, b, c = [[] for e in range(6)] ...?... 

我正在使用 Python 3

请您参考如下方法:

Python 有一种机制让多个变量 引用相同 对象,具有:

a = b = c = [[] for e in range(6)] 

但你可能不想那样,因为现在a , b和 c引用同一个列表。因此,如果我们附加到 a ,那么该变化也反射(reflect)在 b 中和 c .

但是,我们可以使用 iterable 解包:

a, b, c = <b>[</b>[[] for e in range(6)] <b>for _ in range(3)]</b>

所以这里我们构建了一个包含三个列表的列表,然后我们解压那个列表到三个变量中,这样每个变量都有自己的子列表。

或者一般来说,如果你有一个特定的表达式需要计算 n 次,然后分配给 n 个变量,你可以使用:

x<i>1</i>, x<i>2</i>, x<i>n</i> = [<i><expr></i> for _ in range(<i>n</i>)]

这里 <expr> 当然应该替换为真实的表达式,变量 x<i>i</i>具有实变量。