为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Qyouu 2023-07-18 17:51:13
我有一个由列表作为值组成的字典。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]
查看完整描述

2 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您可以使用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


查看完整回答
反对 回复 2023-07-18
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

玩得开心一点...


>>> 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


查看完整回答
反对 回复 2023-07-18
  • 2 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信