Skip to main content
 首页 » 编程设计

python之如何确定列表的维度

2025年05月04日11arxive

如何以编程方式确定列表的维度?谢谢。

请您参考如下方法:

对于一个简单的列表,你可以用 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 

您可以执行 isinstance(x, list) 或您想要的任何其他检查,而不是 iterable。编辑以排除字符串以避免 dimensionality('lol') 无限循环。