0

のような特定の長さのサブリストで構成されるリストがあり[["a","b","c","d"],["a","b","c","d"],["a","b","c","d","e"]]ます。私がやりたいことは、特定の長さを持たないサブリストのインデックスを見つけて、そのインデックスを出力することです。たとえば、リストの例では、最後のサブリストの長さが 4 ではないため、list 2 does not have correct length. これは私がこれまでに持っているものです:

for i in newlist:
    if len(i) == 4:
        print("okay")
elif len(i) != 4:
    ind = i[0:]     #this isnt finished; this prints out the lists with the not correct length, but not their indecies 
    print("not okay",ind)

前もって感謝します!

4

2 に答える 2

1

インデックスとオブジェクトの両方が必要な場合は、多くの場合、タプルenumerateを生成する を使用できます。(index, element)例えば:

>>> seq = "a", "b", "c"
>>> enumerate(seq)
<enumerate object at 0x102714eb0>
>>> list(enumerate(seq))
[(0, 'a'), (1, 'b'), (2, 'c')]

など:

newlist = [["a","b","c","d"],["a","b","c","d"],["a","b","c","d","e"]]

for i, sublist in enumerate(newlist):
    if len(sublist) == 4:
        print("sublist #", i, "is okay")
    else:
        print("sublist #", i, "is not okay")

生産する

sublist # 0 is okay
sublist # 1 is okay
sublist # 2 is not okay
于 2013-08-03T02:20:07.133 に答える
0

DSM はあなたが求めていた答えを得たと思いますが、index メソッドを使用して次のように書くこともできます。

new_list = [["a","b","c","d"],["a","b","c","d"],["a","b","c","d","e"]]
size_filter = 4
# all values that are not 4 in size
indexes = [new_list.index(val) for val in new_list if len(val)!=size_filter]
# output values that match
for index in indexes:
    print("{0} is not the correct length".format(index))
于 2013-08-03T04:41:33.020 に答える