Python 如何区分单行多维列表和多行多维列表?

Python 如何区分单行多维列表和多行多维列表?,python,python-3.x,Python,Python 3.x,以下是单行Python多维列表: list1 = [1, 2, 3, 4, 5] len(list1) 5 list2 = [1, 2, 3, 4, 5] [6, 7, 8, 9, 10] len(list2) 2 以下是一个多行Python多维列表: list1 = [1, 2, 3, 4, 5] len(list1) 5 list2 = [1, 2, 3, 4, 5] [6, 7, 8, 9, 10] len(list2) 2 我想知道list

以下是单行Python多维列表:

list1 = [1, 2, 3, 4, 5]

len(list1)
5
list2 = [1, 2, 3, 4, 5]
        [6, 7, 8, 9, 10]

len(list2)
2
以下是一个多行Python多维列表:

list1 = [1, 2, 3, 4, 5]

len(list1)
5
list2 = [1, 2, 3, 4, 5]
        [6, 7, 8, 9, 10]

len(list2)
2
我想知道list1是一个单行列表,但是len返回行中元素的数量,而对于多行,len返回行的数量

如何区分单行列表和多行列表


更新:对于那些因为“打字错误”而关闭此问题的人,请参阅我对以下答案的评论。我的问题不是打字错误造成的,解决方案很有帮助。

我不知道python的原生方式,但您可以检查列表的第一个元素,看看它是否是另一个列表,然后深入挖掘,除非没有找到新的列表类型

list1 = [1, 2, 3, 4, 5]
list2 = [[1, 2, 3, 4, 5],
        [6, 7, 8, 9, 10]]

def get_dimension(l):
    n = 1
    l = next(iter(l))
    while type(l) == list:
        l = next(iter(l))
        n += 1
    return n

print(get_dimension(list1))
# 1
print(get_dimension(list2))
# 2

list2
不是有效的python列表。您正在查找:
list2=[[1,2,3,4,5],[6,7,8,9,10]
然后
len(list2)
将是
2
。我同意@MichaelSzczesny,您感到困惑。你的意思是
list2=[[1,2,3,4,5],[6,7,8,9.10]?
。在Python中,列表可以包含任何内容:整数、字符串、字典,甚至其他列表。如果列表2如我所示,那么它是一个两个元素的列表,每个元素都是另一个列表。你到底想弄明白什么?如果这是一个普通矩阵,list1的维数是1 x 5,list2的维数是2 x 5。如果一个Python列表不能做出这种区分,那么我需要一个不同的容器。但我想看看在这种情况下是否有任何方法可以区分。是的,list2是一个“嵌套列表”,其中每个“行”都是另一个列表。@Michael Szczesny-我展示的是list2的外观,而不是它是如何创建的。太好了,你解决了我的问题。如果我选中t1=type(list1[0]),我会看到它是int,所以我知道它不是一个多行列表,而t2=type(list2[0])显示它是一个多行列表,因为类型是list。很简单。没错:)很高兴我能帮忙,很高兴编码!