Python関数の奇妙な振る舞い

ディエゴLl0895

私はPythonのedxのオンラインコースにいて、この小さなプログラムを実行する必要があります。関数は正しいと思いますが、要素がリストから突然削除されると、次の要素がテストに考慮されないというバグがあります。 。

    def f(i):
       return i + 2
    def g(i):
       return i > 5


    def applyF_filterG(L, f, g):
        """
        Assumes L is a list of integers
        Assume functions f and g are defined for you. 
        f takes in an integer, applies a function, returns another integer 
        g takes in an integer, applies a Boolean function, 
        returns either True or False
        Mutates L such that, for each element i originally in L, L contains  
            i if g(f(i)) returns True, and no other elements
        Returns the largest element in the mutated L or -1 if the list is empty
        """
        # Your code here
        i = 0
        if len(L) == 0:
            return -1
        while i < len(L):
            if not g(f(L[i])):
                del L[i]
            i += 1
        return max(L)

この例でL = [0、-10、5、6、-4、-2]を試してみると、Lの値はL = [5,6]になりますが、結果は[-10、5、6 、-2] 0が削除された場合、要素-10はスキップされ、-4と-2でも同じことが起こります。助けてください、私はこれをどのように解決できるかわかりません。

pat2013

Pythonのループ内で変更するリストを繰り返さないようにしてください。この例では、要素を削除した後にインデックスの順序が変更されています。反復する前にLのコピーを作成しましたが、それでうまくいきます。

def applyF_filterG(L, f, g):
    copied_L = L[:]
    for i in copied_L:
        if not g(f(i)):
            L.remove(i)
    if len(L)==0:
        return -1
    else:
        return  max(L)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

isinstance関数の奇妙な振る舞い

分類Dev

Javascript関数の奇妙な振る舞い

分類Dev

数式の奇妙な振る舞いでPython関数

分類Dev

静的変数の奇妙な振る舞い

分類Dev

10進数の奇妙な振る舞い。

分類Dev

奇妙な振る舞いのJava変数

分類Dev

Rのtruncdistとの積分関数の「奇妙な」振る舞い

分類Dev

MATLABの積分関数の奇妙な振る舞い

分類Dev

奇妙な振る舞いのモックのside_effect関数

分類Dev

(^)の奇妙な振る舞い

分類Dev

Pythonの奇妙な振る舞い 'は'

分類Dev

Python 2.7:奇妙なUnicodeの振る舞い

分類Dev

Python辞書の奇妙な振る舞い

分類Dev

Python辞書の奇妙な振る舞い

分類Dev

束縛関数の奇妙な振る舞い

分類Dev

関数リターンの奇妙な振る舞い

分類Dev

Cコードの奇妙な振る舞い(fgets関数)

分類Dev

秒経過関数の奇妙な振る舞い

分類Dev

優先順位に関する中置関数の奇妙な振る舞い

分類Dev

奇妙な振る舞いをするC ++ 11sleep_関数

分類Dev

PHPのprintf関数とそれは奇妙な振る舞いです

分類Dev

ポインタの配列関数パラメータ-奇妙な振る舞い

分類Dev

reallocの使い方(奇妙な振る舞い)

分類Dev

Elm-初期の奇妙な振る舞いに関する乱数

分類Dev

emacsの奇妙な振る舞いに関するediprolog

分類Dev

Rの商の奇妙な振る舞い

分類Dev

vimのCAの奇妙な振る舞い?

分類Dev

Haskellでの(^)の奇妙な振る舞い

分類Dev

Rの奇妙な振る舞いのPOSIXct