如何在Python中访问列表列表?

时间:2013-02-25 05:25:19

标签: 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 个答案:

答案 0 :(得分:2)

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

  2. 资本化很重要。您想要supList.append(),而不是suplist.append()

答案 1 :(得分: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]