我正在寻找一种在元组的有序列表中查找差异的方法。
下面以元组列表为例:
[(1, 1000), (2, 2500)]
我想知道如何找到第二个元素之间的区别。
答案 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])