在Python中查找嵌套列表的维度
我们可以通过使用嵌套列表在Python中创建多维数组,比如:
A = [[1,2,3],
[2,1,3]]
等等。在这种情况下,行数nRows可以通过len(A)得到,列数nCols可以通过len(A[0])得到。不过,当我有超过三维的时候,这就变得复杂了。
A = [[[1,1,[1,2,3,4]],2,[3,[2,[3,4]]]],
[2,1,3]]
等等。这些列表在Python中是合法的。而且维度的数量并不是事先确定的。在这种情况下,如何确定维度的数量以及每个维度中的元素数量呢?
我在寻找一个算法,如果可能的话还想要实现方法。我觉得这可能和深度优先搜索(DFS)有点类似。有什么建议吗?
附注:我并不想寻找现有的包,不过我也想了解一下它们。
1 个回答
0
我觉得我自己已经解决了这个问题。其实就是一个简单的深度优先搜索(DFS)。
对于上面给出的例子:A = [[[1,1,[1,2,3,4]],2,[3,[2,[3,4]]]], [2,1,3]],答案是这样的:[[3, 2, 2, 2, 3, 4], [3]]。总的维度数是7。
我想我之前想得太复杂了……不过还是谢谢你们!