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
长度在我的函数中定义,所以你可以帮我解决这个问题吗?
答案 0 :(得分:1)
因为您有return max(lenghts)
并且您的变量名为lengths
?
答案 1 :(得分:1)
这只是一个拼写错误。
lengths
和lenghts
不同。
答案 2 :(得分:1)
Python解释器在封闭范围中查找变量 - 当它找不到本地时 - 直到它达到全局范围。
未能找到长度 - 由于拼写错误,它应该是长度 - 它开始在全局范围内查找它。未能找到它,它报告说它没有在全球范围内找到 - 暗示它也未能在本地范围内找到它。
这里更紧凑 - 更不容易出错(拼写错误的变量更少) - 你的功能变体:
def biggest(aDict):
if not aDict:
return None
return max(len(val) for val in aDict.values())