4

次のような辞書と変数があるとします。

dic = {0 : 'some', 10 : 'values', 20 : 'whatever'}
var = 14

キーが最大であるが変数以下である辞書から値を取得したい。それが明確かどうかはわかりませんが、この場合は を探してい10ます。

私はこの関数を思いついたのですが、Python を初めて使用するので、もっと簡単な方法があるかどうか知りたいと思っていました。

def get_greatest_key(dic, var):
    # if the key exists no need to search
    if var in dic:
        return dic[var]
    else:
        # create a list with all the keys sorted in reverse 
        l = sorted(dic, key=dic.get)
        i = 0
        while i < len(l):
            # parse the list
            if l[i] <= var:
                return dic[l[i]]
            i += 1
        # by default we return the last element in the dictionary
        return dic[l[len(l) - 1]]
4

1 に答える 1