Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm tuple gần nhất theo chỉ số K trong Python

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).