找到有错误的子列表的索引?

时间:2013-08-01 15:23:53

标签: list python-3.x

我有一个列表列表,我想找到长度不是4的子列表的索引。这就是列表的样子:

l = [['"a"','"b"','"c"','"d"'],['"a"','"b"','"c"','"d"'],['"a"','"b"','"c"','"d"','"e"']

第三个子列表的长度不是4,因此我必须向用户报告第三行的长度不正确。

这是我的代码:

x = max(len(l) for i in l)
        if x == 4:
            return True
        elif x != 4:
            for i in l:
               c = l.index(i)
            print(c)      #returns 4...

编辑:第一个子列表实际上是一个标题,因此只应返回带有错误的子列表的索引。

2 个答案:

答案 0 :(得分:0)

使用next()enumerate()

index = next(i for i, sublist in enumerate(l) if len(l) != 4)

如果所有子列表的长度为4或没有子列表,则会引发StopIteration。您可以要求next()返回默认值:

index = next((i for i, sublist in enumerate(l) if len(l) != 4), None)

答案 1 :(得分:0)

怎么样

>>> [len(v) == 4 for v in l].index(False)
2