Python:如何断言二维列表存在?

时间:2014-04-05 10:57:22

标签: python

如何:

if myList[k][m]:
            # step through each item of the subset
            while i < len(myList[k][m]):
            ...

以上不起作用。我想检查该列表的第二维是否存在(&#39; m&#39;)。

4 个答案:

答案 0 :(得分:1)

您可以使用try块:

try:
    for sublist in mylist:
        for item in sublist:
            pass # do stuff
except TypeError:
    pass # handle stuff here

可替换地:

if hasattr(object, '__contains__'):
    pass # the object is iterable!

您必须将它应用于您想要测试可迭代性的每个对象。

检查&#39;&#39;尺寸:

if hasattr(myList, '__contains__'): # this is sufficient
    pass # myList is iterable
else:
    raise TypeError

如果您只是想检查第二个维度(&#39; m&#39;):

if all([hasattr(sublist, '__contains__') for sublist in myList]):
    pass # myList[_] is iterable 
else:
    raise TypeError # handle stuff here

答案 1 :(得分:0)

这个怎么样:

for line in your_list:
    for element in line:
        assert element > whatever

答案 2 :(得分:0)

if myList[k] and isinstance(myList[k], list) and myList[k][m]:
     pass #do stuff

if len(myList) > k and isinstance(myList[k], list) and len(myList[k]) > m:
     pass #do stuff

这些都有效吗?

编辑:添加检查以查看myList [k]是否为列表

答案 3 :(得分:-1)

python中的列表与其他编程语言中的二维数组略有不同。要检查列表是否具有第一个维度,您可以尝试键入

if len(myList) > 0:
    # Your Code here

现在在一个列表中,其中每个元素在另一个列表或二维列表中 - 列表中的每一行都可以有一个可变数量的列,这与列说的不同

Integer[][] array = new Integer[10][10]

用Java或其他类似语言编写。因此,您必须检查列表中每个元素的尺寸。

if len(myList) > 0:
    for i in range(len(myList)):
        if len(myList[i]) > 0:
            for j in range(len(myList[i])):
                # Do something with myList[i][j]