2017-10-14 68 views
0

我收到以下代碼的錯誤。如何解決它?python中的列表()錯誤

代碼:

a= list(set([1,2,3,4])) 
print(a) 

錯誤:

TypeError Traceback (most recent call last) 
<ipython-input-118-e8b21f19c16c> in <module>() 
----> 1 a= list(set([1,2,3,4])) 
     2 print(a) 

TypeError: 'list' object is not callable 
+1

你以前在代碼中的任何位置定義過'list'變量嗎?因爲該線路有效,並且應該爲我工作。 – Chinny84

+1

嗯......如果'print'引發了'TypeError'(因爲堆棧跟蹤中的2是'print(a)'),那麼在你的代碼的某處你做了這樣的事情:'print = [1,2, 3]'將'print'重新定義爲'list' – abccd

+0

歡迎來到SO。請花時間閱讀[問]及其中包含的鏈接。感謝您在問題中包含Traceback。 – wwii

回答

2

某處在你的代碼中定義了一個名爲 「清單」 的變量。這隱藏了內置列表。該錯誤表明您已將另一個類的實例分配給列表變量。或者,您可能會將該列表用作可調用對象,而不是像下面給出的對其進行編制索引,

我認爲您提供的代碼段不正確。我得到了完全相同的錯誤,當我試圖使用列表對象的可調用像下面,

a= list(set([1,2,3,4])) 
print(a(1)) # wrong! Use [] 
+0

對象的一切問題。我非常喜歡Python,但沒有語言應該能夠覆蓋內置函數! – Chinny84

+1

@ Chinny84:有理由重寫所述名稱。他們少之又少,但他們在那裏。 –

+0

「隨着巨大的力量來承擔巨大的責任」 - :-) –

2

你可能只是在本地範圍類型列表的變量「列表」。例如:

list = [] 
a = list(set([1,2,3,4])) 
print(a) 

將導致錯誤。
總是記住重現性。如果我只是複製&粘貼您的代碼,它將工作沒有任何錯誤。