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

长度是在我的函数中定义的,所以你能帮我解决这个问题吗?

4

3 回答 3

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 回答
1

因为你有return max(lenghts)并且你的变量被调用lengths

于 2012-10-21T15:17:31.547 回答
1

这只是一个拼写错误。

lengths并且lenghts是不同的。

于 2012-10-21T15:18:26.783 回答