所以我遇到了一些麻煩,試圖調試這段代碼。我有一個數字列表,例如[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