基本上,我試圖在我的函數中展開一個列表,但忽略它(您也可以忽略我放入的打印函數)。 以x = [[1,2,3],4,5]
爲我的變量。 我打電話prob7(x)
但問題是,當type([1,2,3])
得到檢查==列表,它返回false。這是爲什麼?我明確地檢查瞭解釋器命令行上的內容,並且它返回true。但在函數內部,我弄錯了。Python的邏輯錯誤?
只是我錯過了一個錯誤,因爲我很困或者我誤解了Python語言的某些部分?如果它很重要,我運行2.6版本。
def prob7(list): # flatten a list
tempList = []
if list: # meaning if there are elements in the list and it is not empty
for i in list:
if type(i) != list:
print tempList,'if',i,type(i)==list
tempList.append(i)
else:
print tempList,'else',i
tempList.extend(prob7(i))
return tempList
當心列表嵌套多於'sys.getrecursionlimit()'(約1000列出)深。由於您在嵌套列表上調用函數,因此您可以按遞歸深度限制並獲得RecursionError。 –
dang,謝謝大家。比我需要的更多的信息,但仍然非常有用 – dtc