【发布时间】:2012-11-07 00:36:46
【问题描述】:
在 Python 中,我想要一种直观的方式来创建 3 维列表。
我想要一个 (n × n) 列表。所以对于 n = 4 它应该是:
x = [[[],[],[],[]],[[],[],[],[]],[[],[],[],[]],[[],[],[],[]]]
我尝试过使用:
y = [n*[n*[]]]
y = [[[]]* n for i in range(n)]
两者似乎都在创建引用的副本。 我也尝试过简单地应用列表生成器,但收效甚微:
y = [[[]* n for i in range(n)]* n for i in range(n)]
y = [[[]* n for i in range(1)]* n for i in range(n)]
我还尝试使用循环迭代地构建数组,但没有成功。我也试过这个:
y = []
for i in range(0,n):
y.append([[]*n for i in range(n)])
有没有更简单或更直观的方法?
【问题讨论】:
-
对多维数组/列表使用 numpy 可以省去很多麻烦。
标签: python list python-2.7 list-comprehension