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

2024-05-16 12:35:11 发布

您现在位置: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'

我怎样才能解决这个问题?你知道吗


Tags: 代码inselfforinitdefmyclasscode
2条回答

我很难理解您的代码试图实现什么,但这会修复您的语法错误:

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]
  1. listt是一个列表,因此,在调用该项的方法之前,需要对其进行索引(即从列表中选择一项,如中所示)。(例如instancelist[0].listt[0].supList)然而,我仍然不知道为什么列表中只有一项。

  2. 资本化问题。你想要的是supList.append(),而不是suplist.append()

相关问题 更多 >