Computer >> Máy Tính >  >> Lập trình >> Python

Tìm cặp chênh lệch tối đa trong Python

Phân tích dữ liệu có thể gây ra nhiều thách thức. Trong bài viết này, chúng tôi sẽ lấy một danh sách với các số làm phần tử của nó. Sau đó, chúng tôi sẽ tìm thấy các cặp phần tử như vậy trong danh sách có giá trị chênh lệch lớn nhất giữa chúng.

Với nlargest

Cách tiếp cận ở đây là đầu tiên tìm ra tất cả các kết hợp có thể có của các phần tử và sau đó trừ phần tử thứ hai khỏi phần tử đầu tiên. Cuối cùng, hãy áp dụng mô-đun heapq của biểu mẫu hàm nlargest để nhận các cặp có sự khác biệt là tối đa.

Ví dụ

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)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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

Với các kết hợp và Max ()

Ở đây, chúng tôi cũng thực hiện theo cùng một cách tiếp cận như trên nhưng chúng tôi nhận được một cặp do kết quả là chúng tôi áp dụng hàm max cho chúng tôi một cặp như kết quả.

Ví dụ

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)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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