如何在列表中的元组序列中找到差异?

时间:2018-07-08 06:14:08

标签: python

我正在寻找一种在元组的有序列表中查找差异的方法。

下面以元组列表为例:

[(1, 1000), (2, 2500)]

我想知道如何找到第二个元素之间的区别。

2 个答案:

答案 0 :(得分:1)

首先计算另一个列表中的差异,然后找到最大差异

这是我的方法:

list = [(1, 1000), (2, 2500), (3, 5000), (4, 8000), (5, 9500)]
diffs = []

for i, item in enumerate(list):
    if (i > 0):
        diffs.append((list[i][0], list[i][1] - list[i-1][1]))

maxItem = max(diffs,key=lambda item:item[1])

print maxItem

输出在maxItem女巫中给您:(4, 3000)

答案 1 :(得分:0)

NumPy使它变得简单而高效:

import numpy as np
pairs = [(1, 1000), (2, 2500), (3, 5000), (4, 8000), (5, 9500)]
top = np.diff(np.array(pairs)[:,1]).argmax()
print(pairs[top+1][0], pairs[top+1][1] - pairs[top][1])