def big(dict, n):
line = []
for k in dict:
if k > n:
line.append(k)
return line
Run Code Online (Sandbox Code Playgroud)
我必须找到大于n的dict中的所有元素.
但是,我的代码只返回大于n的dict中的最大数字.
为了使其正确,我需要做什么?
在return line被标签太远了,所以它返回时,第一 键大于n被发现(注:字典是不是你写的方式订购),而不是返回前都要对所有的密钥.尝试:
def big(dic, n):
line = []
for k in dic:
if k > n:
line.append(k)
return line
Run Code Online (Sandbox Code Playgroud)
实际上,您可能更喜欢使用列表推导(并且该函数只变为一行).
def big(dic, n):
return [k for k in dic if k>n]
Run Code Online (Sandbox Code Playgroud)
.
字典包含键值对,{key: value}当我们遍历字典时,我们迭代它的键.这解释了使用变量k迭代键.那是,
[k for k in dic] = [key1, key2, ...]
Run Code Online (Sandbox Code Playgroud)
因此,如果要查找字典中具有最大值的值,可以使用:
return [dic[k] for k in dic if dic[k]>n]
Run Code Online (Sandbox Code Playgroud)
注意:我已经将变量名称更改为dic(因为@AndrewJaffe提及)dict是一个内置对象,并且在此重命名它可能会导致意外事件发生,并且通常被认为是不好的做法.例如,如果你想检查type(dic)==dict.