Sử dụng enumerate và abs để tìm tuple trong list có phần tử tại vị trí K gần nhất với giá trị mục tiêu.
Ví dụ
my_list = [(5, 6), (66, 76), (21, 35), (90, 8), (9, 0)]
print("List:", my_list)
target = (17, 23)
print("Tuple mục tiêu:", target)
K = 2
print("K =", K)
min_diff = float('inf')
best_idx = None
for idx, val in enumerate(my_list):
diff = abs(target[K - 1] - val[K - 1])
if diff < min_diff:
min_diff = diff
best_idx = idx
print("Tuple gần nhất tại chỉ số K:", my_list[best_idx])
Kết quả
List: [(5, 6), (66, 76), (21, 35), (90, 8), (9, 0)] Tuple mục tiêu: (17, 23) K = 2 Tuple gần nhất tại chỉ số K: (21, 35)
Giải thích
- Chỉ số K tính từ 1, nên truy cập
K-1. - Tính độ chênh lệch tuyệt đối giữa
target[K-1]vàval[K-1]. - Theo dõi độ chênh lệch nhỏ nhất và chỉ số tương ứng.
- Kết quả: tại K=2, target[1]=23, tuple (21,35) có val[1]=35, diff=12 (nhỏ nhất).