所以我在尝试调试这段代码时遇到了一些麻烦。我有一个数字列表,比如 [4,5,7,3,5,2,3],我需要找到最接近的两个点,所以在这种情况下,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