0

我有一个列表列表,我想找到长度不是 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...

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

4

2 回答 2

0

怎么样

>>> [len(v) == 4 for v in l].index(False)
2
于 2013-08-01T15:27:03.420 回答
0

使用next()enumerate()

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

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

index = next((i for i, sublist in enumerate(l) if len(l) != 4), None)
于 2013-08-01T15:24:54.497 回答