在Python中找到最大差异对

数据分析可能会带来各种挑战。在本文中,我们将列出一个以数字为元素的列表。然后,我们将在列表中找到此类元素对,它们之间的值差异最大。

最大

这里的方法是首先找出所有可能的元素组合,然后从第一个元素中减去第二个元素。最后,使用来自heapq模块的nlargest函数获得差异最大的那些对。

示例

from itertools import combinations
from heapq import nlargest

listA = [21, 14, 30, 11, 17, 18]

# Given list
print("Given list : ",listA)

# using nlargest and combinations()
res = nlargest(2, combinations(listA, 2),
               key=lambda sub: abs(sub[0] - sub[1]))

# print result
print("Pairs with maximum difference are : ",res)

输出结果

运行上面的代码给我们以下结果-

Given list : [21, 14, 30, 11, 17, 18]
Pairs with maximum difference are : [(30, 11), (14, 30)]

与组合和Max()

这里我们也采用与上述相同的方法,但是得到一对,因为我们应用了max函数,结果得到一对。

示例

from itertools import combinations

listA = [21, 14, 30, 11, 17, 18]

# Given list
print("Given list : ",listA)

# using combinations() and lambda
res = max(combinations(listA, 2), key = lambda sub: abs(sub[0]-sub[1]))

# print result
print("Pairs with maximum difference are : ",res)

输出结果

运行上面的代码给我们以下结果-

Given list : [21, 14, 30, 11, 17, 18]
Pairs with maximum difference are : (30, 11)