そのため、このコードをデバッグしようとして問題が発生しています。[4,5,7,3,5,2,3] などの数値のリストがあり、最も近い 2 つの点を見つける必要があります。この場合、3 と 3 の差はゼロであるためです。 . ただし、正しい出力が返されません。リスト内で番号が繰り返されていない場合は機能しますが、番号が複数回表示されている場合は機能しません。
def closest1(num_list):
if len(num_list) < 2:
return (None, None)
else:
diff = max(num_list), min(num_list)
for element in num_list:
for sec_element in num_list:
if sec_element == element:
continue
if abs(sec_element - element) < abs(diff[0] - diff[1]):
diff = sec_element, element
return diff