我一直在試圖代碼在Python合併排序程序:爲什麼我的合併排序程序給出錯誤?
def merge (list1 , list2) :
result = []
while (len(list1) != 0 or len(list2) != 0) :
if (len(list1) == 1 and len(list2) == 0) :
result.append(list1[0])
del list1[0]
elif (len(list1) == 0 and len(list2) == 1) :
result.append(list2[0])
del list2[0]
else :
if (list1[0]<list2[0]) :
result.append(list1[0])
del list1[0]
elif (list1[0]>list2[0]) :
result.append(list2[0])
del list2[0]
return result
但是當我執行此代碼
print merge([43, 60], [71, 84])
我得到的錯誤:
Traceback (most recent call last):
File "mergesort.py", line 99, in <module>
print merge([43, 60], [71, 84])
File "mergesort.py", line 11, in merge
if (list1[0]<list2[0]) :
IndexError: list index out of range
爲什麼我明白了嗎?
喜歡它說因爲列表索引超出範圍。此外,你的代碼正在運行,你打算問爲什麼你會得到一個錯誤。 –
一個很好的調試技巧是在你的方法周圍添加大量的日誌,給出你懷疑問題出現的狀態。例如錯誤消息中提到的行之前。 –