从元组列表中获取其元素之间差异最大的元组

kbr*_*r85 2 python tuples list python-3.x

假设我有一个类似元组的列表:

listTuples = [(0, 3), (5, 10), (2, 4)] 
Run Code Online (Sandbox Code Playgroud)

我想获取元组元素之间差异最大的元组索引

3 - 0 = 3
10 - 5 = 5
4 - 2 = 2
Run Code Online (Sandbox Code Playgroud)

所以我想要1作为回报。

目前,我正在执行以下操作,但是也许有更好的方法(更快,更少的代码行)来执行此操作。

listTuples = [(0, 3), (5, 10), (2, 4)] 

k = 0
e = 0

for j, i in enumerate(listTuples):
    diff = i[1] - i[0]
    if k < diff:
        k = diff
        e = j
    else:
        pass

print(e)
Run Code Online (Sandbox Code Playgroud)

Abd*_*P M 6

您可以index将list对象的方法与max功能一起使用。即

>>> listTuples = [(0, 3), (5, 10), (2, 4)]
>>> listTuples.index(max(listTuples, key=lambda x: x[1] - x[0]))
1
Run Code Online (Sandbox Code Playgroud)

这里max(listTuples, key=lambda x: x[1] - x[0])将返回一个具有最大差异的元组,index方法将从原始列表中找到该元组的索引。

listTuples.index((5, 10))