2013-02-25 76 views
1

下面是一些代码,我写道:如何访问Python列表中的列表?

class supClass: 
    supList=[] 
    def __init__(self): 
     "" 

class MyClass: 
    listt=[] 
    code=None 
    def __init__(self): 
     "" 

instancelist = [ MyClass() for i in range(4)] 
for i in range(0,4): 
    instancelist[i].listt.append(supClass()) 
    instancelist[i].listt.suplist.append(i) 
    instancelist[i].code=12 


for i in range(4): 
    print instancelist[0].listt.suplist 

它产生以下错误:

File "/home/aj/workspace/PythonTutorials/basics/builtFun.py", line 21, in <module> 
    instancelist[i].listt.suplist.append(i) 
AttributeError: 'list' object has no attribute 'suplist' 

我该如何解决这个问题?

回答

2
  1. listt是一个列表,因此,你需要建立索引调用该项目的方法之前(即从列表中选择一项作为)。 (例如instancelist[0].listt[0].supList)但我仍不确定为什么只有一个项目的列表。

  2. 大写事宜。你想要supList.append(),而不是suplist.append()

+1

这个答案遗漏了'listt'是'list'和'supClass在调用'supList.append()'之前'必须从它中检索它。 – Johnsyweb 2013-02-25 05:58:46

+1

@Johnsyweb:哦,好点。我没有明白。 – 2013-02-25 07:49:53

1

我难以理解你的代码试图实现,但这个修复您的语法错误:

for i in range(4): 
    instancelist[i].listt.append(supClass()) 
    # listt is a list object. To access the last item, use [-1]. 
    # supList has a capital L. 
    instancelist[i].listt[-1].supList.append(i) 
    instancelist[i].code = 12 

for i in range(4): 
    # It looks like you want to print the supList for each supClass item in list: 
    print [s.supList for s in instancelist[0].listt] 
+0

非常感谢它的工作,对于我的项目我想附加类似于这样的东西 – irobo 2013-02-25 05:45:50

+0

我很高兴它的工作,但我仍然不明白你的上一个问题中的代码或代码。 – Johnsyweb 2013-02-25 05:49:18