所以我遇到了一些麻烦,试图调试这段代码。我有一个数字列表,例如[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
你试过列表进行排序,第一 – Keatinge
'[X在num_list x如果num_list.count(X)> 1]'将返回重复。如果没有,您可以继续对列表进行排序并找出差异。 – jDo
还有另一对距离为0(5,5)的列表。有没有一种方法可以选择(3,3)或者没关系? – sal