0
def biggest(aDict):
    if aDict.values() == []  :
        return None

    lengths =[]
    for e in aDict:
        lengths.append(len(aDict[e]))

    return max(lenghts)

biggest({'U': []})または他の何かがエラーを生成します:

NameError: global name 'lenghts' is not defined

lengths は私の関数で定義されているので、これを手伝ってもらえますか?

4

3 に答える 3

1

スペルミスです。

lengthslenghtsは異なります。

于 2012-10-21T15:18:26.783 に答える
1

あなたが持っていてreturn max(lenghts)、あなたの変数が呼び出されているからlengthsですか?

于 2012-10-21T15:17:31.547 に答える
1

Python インタープリターは、ローカル スコープが見つからない場合、グローバル スコープに到達するまで、囲んでいるスコープ内の変数を探します。

長さを見つけることができない -タイポが原因で、それは長さであるべきだった- グローバルスコープでそれを探し始めます。見つからない場合は、グローバル スコープで見つからなかったことを報告します。これは、ローカル スコープでも見つからなかったことを意味します。

そして、これはよりコンパクトで、エラーが発生しにくい(スペルミスする変数が少ない)-関数のバリアントです:

def biggest(aDict):
    if not aDict:
        return None
    return max(len(val) for val in aDict.values())
于 2012-10-21T16:07:13.490 に答える