Python 2.7创建多维列表

发布于 2021-01-29 15:13:57

在Python中,我想要一种直观的方式来创建3维列表。

我想要一个(一个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)])

有没有更简单或更直观的方法?

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我认为您的列表理解版本非常接近工作。您无需进行任何列表乘法(无论如何,它与空列表无关)。这是一个工作版本:

    >>> y = [[[] for i in range(n)] for i in range(n)]
    >>> print y
    [[[], [], [], []], [[], [], [], []], [[], [], [], []], [[], [], [], []]]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看