2013-11-22 42 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) 
相关问题