1

このコードを理解するのに助けが必要です。これは私の最初のプログラミングクラスで、来週試験があり、古い試験をやろうとしています.

理解に苦しんでいるネストされたリストを持つクラスが 1 つあります。それは基本的に変換すると言い(list of [list of ints]) -> intます。

基本的に、この場合偶数を持つリストのリストが与えられた場合、0 はそのインデックスを返し、偶数がない場合は -1 を返します。

また、3つの例が与えられています

>>> first_even([[9, 1, 3], [2, 5, 7], [9, 9, 7, 2]])
1
>>> first_even([[1, 3, 5], [7, 9], [1, 0]])
2
>>> first_even([[1, 3, 5]])
-1

私たちはクラスでpython 3を使用しています。どこから始めればよいかはある程度わかっていますが、それが間違っていることはわかっています。しかし、試してみてください

def first_even(L1):
    count = 0
    for i in range(L1):
       if L1[i] % 2 = 0:
           count += L1
    return count

これだと思っていたのですが、うまくいきませんでした。

これに対するヒントや解決策を教えていただければ、私にとって役に立ちます。

4

4 に答える 4

0

だからここに私が思いついたものがあります。

def first_even(L1):
    for aList in range(len(L1)):
        for anItem in range(len(L1[aList])):
           if L1[aList][anItem] % 2 == 0:
               return aList
    return -1

まずは修正。「等しい」には == を使用する必要があります。「=」は変数を割り当てるためのものです。

L1[i] % 2 == 0

コードについては、さらに疑似コード スタイルのアイデアを次に示します。

Iterate through the list of lists (L1):
    Iterate through the list's (aList) items (anItem):
        if List[current list][current item] is even:
            Return the current list's index
Return -1 at this point, because if the code gets this far, an even number isn't here.

さらに説明が必要な場合は、喜んでお手伝いします。

于 2013-07-11T22:54:13.927 に答える
0
def first_even(L1):
    return ''.join('o' if all(n%2 for n in sl) else 'e' for sl in L1).find('e')
于 2013-07-11T23:01:06.237 に答える