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

หาความต่างน้อยที่สุดใน Tuple Pair ด้วย Python

Get Minimum Difference in Tuple Pair

เมื่อต้องการหาความต่างน้อยที่สุด (Minimum Difference) ระหว่างคู่ Element ใน List of Tuples สามารถใช้ min() และ List Comprehension ได้

ตัวอย่างโค้ด

my_list = [(67, 78), (39, 34), (23, 52), (99, 69), (78, 2), (11, 0)]
print("The list is : ")
print(my_list)

# คำนวณ Absolute Difference ของแต่ละ Pair
temp_val = [abs(b - a) for a, b in my_list]

# หาค่าน้อยที่สุด
my_result = min(temp_val)

print("The minimum difference among the pairs of list of tuples is: ")
print(my_result)

ผลลัพธ์

The list is : [(67, 78), (39, 34), (23, 52), (99, 69), (78, 2), (11, 0)]
The minimum difference among the pairs of list of tuples is: 5

คำอธิบาย

  • กำหนด List of Tuples (แต่ละ Tuple มี 2 Element) และแสดงผล
  • List Comprehension: [abs(b - a) for a, b in my_list] คำนวณ |b-a| ทุกคู่
  • ได้ List ของความต่าง: [11, 5, 29, 30, 76, 11]
  • ใช้ min() หาค่าน้อยที่สุด = 5
  • แสดงผล

การคำนวณแบบละเอียด

Pairab\|b - a\|
(67, 78)677811
(39, 34)39345 ← Min
(23, 52)235229
(99, 69)996930
(78, 2)78276
(11, 0)11011

ขยาย: หา Pair ที่มีความต่างน้อยที่สุด

# หาทั้งค่าและ Pair
min_pair = min(my_list, key=lambda p: abs(p[1] - p[0]))
min_diff = abs(min_pair[1] - min_pair[0])
print(f"Pair: {min_pair}, Diff: {min_diff}")
# Pair: (39, 34), Diff: 5

ใช้ NumPy

import numpy as np
arr = np.array(my_list)
diffs = np.abs(arr[:, 1] - arr[:, 0])
print(np.min(diffs))  # 5
print(arr[np.argmin(diffs)])  # [39 34]