0
第一個問題!所以我試圖學習Python(來自Java使用的兩個學期),並且我遇到了TypeError,我認爲這是因爲應該有一個列表時有一個函數。這裏是我的代碼,工作:Python TypeError爲什麼一個列表被視爲一個函數(QuickSort示例)
t = [3,5,2,4,1]
def quicksort(lst):
if len(lst) == 0:
return []
pivot = [lst[0]]
left = [x for x in lst if x < pivot[0]]
right = [x for x in lst if x > pivot[0]]
ans = quicksort(left) + pivot + quicksort(right)
return ans
#return quicksort(left) + pivot + quicksort[right]
print quicksort(t)
這工作。但是,當我做:
t = [3,5,2,4,1]
def quicksort(lst):
if len(lst) == 0:
return []
pivot = [lst[0]]
left = [x for x in lst if x < pivot[0]]
right = [x for x in lst if x > pivot[0]]
#ans = quicksort(left) + pivot + quicksort(right)
#return ans
return quicksort(left) + pivot + quicksort[right]
print quicksort(t)
我得到這個:
Traceback (most recent call last):
File "quickSortTest.py", line 13, in <module>
print quicksort(t)
File "quickSortTest.py", line 11, in quicksort
return quicksort(left) + pivot + quicksort[right]
File "quickSortTest.py", line 11, in quicksort
return quicksort(left) + pivot + quicksort[right]
File "quickSortTest.py", line 11, in quicksort
return quicksort(left) + pivot + quicksort[right]
TypeError: 'function' object is unsubscriptable
我想理解上的差異,並非常感激的解釋!
-S
哦!哇謝謝。 – Squirrel