我有一個由 15 個元素組成的陣列“A”。我必須洗掉一些元素并使陣列包含 8 個元素。我必須比較相鄰元素,并且對于它們之間差異的最小值,它應該洗掉第二個元素,依此類推。迭代應該繼續,直到元素的數量變為 8。我收到錯誤:IndexError: index 13 is out of bounds for axis 0 with size 13。這是我的代碼:
A = [1, 11, 21, 105, 115, 134, 139, 149, 152, 180, 190, 195, 200, 210, 236]
k = 0
while len(A) > 8:
for i in range(len(A) - 1):
x = A[i-1]
y = A[i]
if abs(x-y) == k:
A = np.delete(A, np.argwhere(A == y))
if len(A) == 8:
print("Final A= ", A)
k = k 1
uj5u.com熱心網友回復:
您的錯誤似乎在行中:
A = np.delete(A, np.argwhere(A == y))
滿足此條件后,代碼將繼續回圈,可能導致在 for 回圈的一次迭代中多次洗掉。為了解決這個問題,只需在這一行之后添加一個 break 來中斷回圈并重新評估陣列的大小:
if abs(x-y) == k:
A = np.delete(A, np.argwhere(A == y))
break
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474610.html
