查找最近但较高的dict值

2024-09-27 09:28:59 发布

您现在位置:Python中文网/ 问答频道 /正文

从给定参数中找到最接近但更高值的键的最简单的方法是什么

例如,与

dict = {'a': 78.0, 'b': 87.0, 'c': 92.0},

功能

f(dict, 89.0)

会回来吗

c

Tags: 方法功能参数dict高值
1条回答
网友
1楼 · 发布于 2024-09-27 09:28:59

以下是一个可能的解决方案:

def f(dct, val):
    try:
        return min((v, k) for k, v in dct.items() if v >= val)[1]
    except ValueError:
        return None

以下是一些例子:

>>> dct = {'a': 78.0, 'b': 87.0, 'c': 92.0}
>>> f(dct, 89)
'c'
>>> f(dct, 93)
>>> f(dct, 75)
'a'
>>> f(dct, 79)
'b'

如果您使用的是Python>;3.4您可以为min内置函数使用“default”关键字:

def f(dct, val):
    return min(((v, k) for k, v in dct.items() if v >= val),
               default=(None, None))[1]

相关问题 更多 >

    热门问题