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)