作爲遞歸練習練習,我正在編寫一個Python函數,它遞歸地標識輸入列表是否從最小到最大的實數排序,然後返回一個布爾值。遞歸識別排序列表
我的代碼是:
def det_sorted(listA):
if len(listA) == 1:
return(True)
else:
if listA[0] <= det_sorted(listA[1:]):
return(True)
elif listA[0] > det_sorted(listA[1:]):
return(False)
此函數始終返回 '假'。一般問題:我如何正確遞歸遍歷列表?我的具體問題是:我在這裏做錯了什麼?
我的第一個答案是「不這樣做」。既然你已經有了'sorted()',其他任何東西都更加複雜和昂貴。 – msw
查看錯誤的簡單方法是意識到任何對「sorted()」的調用都將返回「True」或「False」,並且您的「if」語句對「True」或「False」進行不等式檢查'。這不是你想要的。 –
你不應該把它叫做sorted(),因爲這會影響內置函數。 'is_sorted()'將會很好。 – 2rs2ts