这是字典level = {1.4:'A',2.5:'B',3.5:'C'}
我想将score = 1.6
与level
匹配并返回'B'
的值;它返回大于score
但最小的键的值。
在Java中,我通过以下功能来做到这一点:
level.get(level.higherKey(score));
但是在python中做什么?我想python可以做到优雅。
答案 0 :(得分:2)
我认为您需要这个:
level = {1.4: 'A', 2.5: 'B', 3.5: 'C'}
score = 1.6
print(level.get(min((k for k in level if score <= k), default=None)))
# B
在生成器表达式上使用min
可确保它返回大于score
的最小键。
答案 1 :(得分:1)
try:
print(level[min(filter(lambda x: x > score, level))])
except ValueError:
print("No match")
这会打印出大于score
的最小键值。如果没有,则显示“不匹配”。
答案 2 :(得分:0)
print(level[min([i for i in level.keys() if i > score])])
答案 3 :(得分:0)
如何使用有序字典返回下一个更大的值?
def higherKey(level, value):
for elem in collections.OrderedDict(sorted(level.items(), key=lambda t: t)):
if elem > value:
return level[elem]