理解对字典进行排序并返回超过阈值的一定数量的值的键

问题描述

我已经弄懂了我的理解力,并使它可以用于返回已排序列表的键。所以我目前正在返回具有最低值的前X个键。我不太确定如何对此进行规定,使其值高于阈值。

coin_loss_dict = {'ETH': -1.25,'BTC': -5.92,'ETC': -2.50,'OMG': -0.75}
x = -3.5
main_list = ([i[0] for i in sorted(coin_loss_dict.items(),key=lambda x:x[1],reverse=True)[:2]])

我不确定该如何适应它,但是我希望它采用高于阈值(x)的2个值。我已经看到dict.items()之后> = x的位置,但这似乎对我不起作用。

main_list = ([i[0] for i in sorted(coin_loss_dict.items() >= x,reverse=True)[:2]])

我收到一个不错的错误,告诉我在dict_items实例和float实例之间不能这样做。

TypeError: '>=' not supported between instances of 'dict_items' and 'float'

我将不胜感激。我知道这种理解并不是最美丽的方法,但是它可以满足我的需求,但我似乎无法接受的门槛除外。

解决方法

尝试一下:

coin_loss_dict = {'ETH': -1.25,'BTC': -5.92,'ETC': -2.50,'OMG': -0.75}
x = -3.5
main_list = ([i[0] for i in sorted(coin_loss_dict.items(),key=lambda x:x[1],reverse=True) if i[1] >= x])