在列表字典中找到最大列表范围的更好(更整洁)的方法是什么

我有一个由列表作为值组成的字典。Listlen(2)表示数组的范围:


new_dict = {0: [0, 7], 1:[15, 21], 2:[-5, 3]}


我需要找到具有最大范围(即最大)的列表的键list[1] - list[0]


我已经这样做了,并且效果很好,但我假设它可以以更简单或更Pythonic的方式完成。


largest = float("-inf")

largest_list = []

for key in new_dict.keys():

        temp = new_dict[key][1] - new_dict[key][0]

        if temp > largest:

            largest = temp

            largest_list = new_dict[key]


Qyouu
浏览 150回答 2
2回答

素胚勾勒不出你

您可以使用max()自定义key函数:>>> new_dict = {0: [0, 7], 1:[15, 21], 2:[-5, 3]}>>> max(new_dict.items(), key=lambda x: x[1][1] - x[1][0])[0]2

翻过高山走不出你

玩得开心一点...>>> import operator>>> min(new_dict, key=lambda k: operator.sub(*new_dict[k]))2或者>>> max(new_dict, key=lambda k: len(range(*new_dict[k])))2或者>>> min(new_dict, key=lambda k: int.__sub__(*new_dict[k]))2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python