Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค้นหาคู่ความแตกต่างสูงสุดใน Python


การวิเคราะห์ข้อมูลสามารถสร้างความท้าทายได้หลากหลาย ในบทความนี้ เราจะนำรายการที่มีตัวเลขเป็นองค์ประกอบ จากนั้นเราจะพบคู่ขององค์ประกอบดังกล่าวในรายการซึ่งมีค่าความแตกต่างสูงสุดระหว่างพวกเขา

มีขนาดใหญ่ที่สุด

แนวทางในที่นี้คือการค้นหาองค์ประกอบที่เป็นไปได้ทั้งหมดก่อน จากนั้นจึงลบองค์ประกอบที่สองออกจากองค์ประกอบแรก ในที่สุดก็ใช้ฟังก์ชันที่ใหญ่ที่สุดจากโมดูล heapq เพื่อรับคู่เหล่านั้นโดยที่ส่วนต่างสูงสุด

ตัวอย่าง

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)