2013-11-22 38 views
-1
exxy = ['mix', 'xyz', 'aardvark', 'xanadu', 'apple'] 

pleasework = [] 
ten = [] 

for s in exxy: 
    if s[0] == 'x': 
     pleasework.insert[0, s] 
    else: 
     ten.append[s] 

pleasework.sort() 
ten.sort() 

pleasework.append(ten) 

print pleasework 

我不斷收到一個錯誤,指出該對象不是可下載的。什麼是可以訂閱的?

Traceback (most recent call last): 
    File "/Users/jerrywalker/Desktop/CompSci/Programming/Programming_Resources/Python/idle.py", line 10, in <module> 
    ten.append[s] 
TypeError: 'builtin_function_or_method' object is not subscriptable 

我不確定這是什麼意思。我昨天剛剛開始Python ......我確信這是代碼中的一些事情,我做得不對,因爲即使我在變量周圍更改變量的名稱也是如此。

+0

下面是類似問題的鏈接。 http://stackoverflow.com/questions/216972/in-python-what-does-it-mean-if-an-object-is-subscriptable-or-not – slider

回答

2

你用錯誤的語法定義的兩條線:

它不應該是:

pleasework.insert[0, s] 
ten.append[s] 

反倒是:

pleasework.insert(0, s) 
ten.append(s) 

ten.append(s)是一個列表方法,你不能嘗試得到ten.append(s)的元素s

即使假設你試圖做類似ten[s]它仍然會返回一個錯誤,因爲s有可能成爲指數(這是一個整數)的元素你想

1

「標化」意味着你試圖訪問對象的一個​​元素。在下面:

ten.append[s] 

你想訪問元素的ten.appends。由於您想將其稱爲函數/方法,因此您需要使用parens:

ten.append(s) 
相關問題