我有一個由列表作為值組成的字典。Listlen(2)表示數(shù)組的范圍:new_dict = {0: [0, 7], 1:[15, 21], 2:[-5, 3]}我需要找到具有最大范圍(即最大)的列表的鍵list[1] - list[0]我已經(jīng)這樣做了,并且效果很好,但我假設(shè)它可以以更簡單或更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貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個贊
您可以使用max()
自定義key
函數(shù):
>>> 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

翻過高山走不出你
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個贊
玩得開心一點(diǎn)...
>>> 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
添加回答
舉報
0/150
提交
取消