Python:字典的元素

Kev*_*vvv 0 python

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中的最大数字.

为了使其正确,我需要做什么?

And*_*den 6

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.