如何以编程方式确定列表的维度?谢谢。如何确定列表的维度?
1
A
回答
3
假设均匀度:
dims = []
while isinstance(matrix, list) and matrix is not None:
dims.append(len(matrix))
matrix = matrix[0]
number_of_dimensions = len(dims)
希望帮助
7
对于一个简单的列表,你可以得到它的长度与len
:
>>> l = [1, 2, 3, 4, 5]
>>> len(l)
5
对于矩阵,这是最容易被表示为嵌套的列表,你可以得到的第一子列表,例如长度:
>>> matrix = [
[1, 2],
[3, 4],
[5, 6],
[7, 8],
[9, 10]]
>>> len(matrix)
5
>>> len(matrix[0])
2
考虑到JBernardo的评论,定义一个简单的iterable
帮手:
>>> def iterable(x):
if isinstance(x, basestring): return False
try:
iter(x)
except TypeError:
return False
return True
>>> iterable(4)
False
>>> iterable([1, 2, 3])
True
然后,我们可以递归定义dimensionality
功能:
>>> def dimensionality(l):
if not iterable(l): return 0
return 1 + dimensionality(l[0])
>>> dimensionality(0)
0
>>> dimensionality([1, 2, 3])
1
>>> dimensionality([[1,2], [2,3], [3,4]])
2
>>> dimensionality([[[1,2],[2,3]], [[2,3],[3,4]], [[3,4],[4,5]]])
3
相反的iterable
你可以做isinstance(x, list)
或任何其他检查你想要的。编辑排除字符串以避免dimensionality('lol')
无限循环。
相关问题
- 1. 如何确定多维数组的每个维度的大小?
- 2. 如何确定两个2维列表是完全相同的?
- 3. 如何获得特定维度的netCDF变量列表?
- 4. 如何确定2维列表是否包含值?
- 5. 如何确定使用Ruby的PDF页面的维度?
- 6. 如何确定RedDot中列表的长度?
- 7. 如何在运行时确定.NET listview的维度?
- 8. 如何确定数组的维数?
- 9. 如何从stdin中确定二维数组的高度和长度?
- 10. 确定Ada阵列的维数
- 11. 如何将列表和数组转换为相同的维度?
- 12. 如何查找多维列表的长度?
- 13. 如何平铺嵌套列表的两个维度?
- 14. 如何获得多维度列表的最小值?
- 15. np.concatenate新维度中的numpy.ndarray列表?
- 16. 转置列表子集的维度?
- 17. for循环与列表的维度
- 18. 如何确定事实表中哪些列用于计算OLAP多维数据集中的度量值?
- 19. 如何根据长度在python中的一维列表中创建2D列表
- 20. 如何制作具有一定宽度的列表的列表
- 21. 如何降低1XN维列表1名维列表
- 22. 多维列表绑定到列表框
- 23. 如何确定CodeIgniter速度?
- 24. 确定细胞二维列表的邻居
- 25. 如何确定列中的csv字段的长度并返回一定长度
- 26. 如何确定列表是否为alist
- 27. 如何使无维度名称矩阵从列表
- 28. 如何使用包含两个维度列表
- 29. 如何从交叉过滤器实例获取维度列表?
- 30. 如何写入和读取维度列表数组?
列表是*始终*一维的。 –
列表是* not * arrays:(嵌套)列表中的条目不必是相同的结构。 '[a,[b,c]]'是一个合法名单,但并不具有维度。 –