0

リストのリストがあり、長さが 4 ではないサブリストのインデックスを見つけたいと考えています。リストは次のようになります。

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

3 番目のサブリストの長さは 4 ではないため、3 番目の行の長さが正しくないことをユーザーに報告する必要があります。

これは私のコードです:

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

とを使用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 に答える