python错误:索引器错误:列表索引超出范围

python错误:索引器错误:列表索引超出范围,python,xbmc,Python,Xbmc,我需要一些代码方面的基本帮助,我正在尝试使用变量self的值创建一个新列表。每次使用变量program\u控件添加要存储在数组中的按钮列表时,都要添加程序 当我尝试这个: self.add_programs = list() self.rows += 1 program_controls = xbmcgui.ControlButton( int(position_start), int(position_top), int(program_width),

我需要一些代码方面的基本帮助,我正在尝试使用变量
self的值创建一个新列表。每次使用变量
program\u控件添加要存储在数组中的按钮列表时,都要添加程序

当我尝试这个:

self.add_programs = list()
self.rows += 1

program_controls = xbmcgui.ControlButton(
    int(position_start), 
    int(position_top), 
    int(program_width), 
    int(program_height), 
    program_title, 
    focusTexture = self.path + self.button_focus, 
    noFocusTexture = self.path + self.button_nofocus,
    textColor ='0xFFFFFFFF',
    focusedColor ='0xFF000000'
)
self.add_programs[self.rows].append(ProgramControls(program_controls, program))
它给了我一个错误:indexer:list索引超出范围

错误正在该行上跳转:

self.add_programs[self.rows].append(ProgramControls(program_controls, program))
代码如下:

class ProgramControls(object):
     def __init__(self, control, program):
         self.control = control
         self.program = program



class MyClass(xbmcgui.WindowXML):

    def __init__(self):
        self.add_programs = list()
        self.rows = 0

    def GoDown(self):
        self.add_programs = list()
        self.rows += 1

        program_controls = xbmcgui.ControlButton(
            int(position_start), 
            int(position_top), 
            int(program_width), 
            int(program_height), 
            program_title, 
            focusTexture = self.path + self.button_focus, 
            noFocusTexture = self.path + self.button_nofocus,
            textColor ='0xFFFFFFFF',
            focusedColor ='0xFF000000'
        )
        self.add_programs[self.rows].append(ProgramControls(program_controls, program))
    prog_button = [elem.control for elem in self.add_programs]


    if self.programs == False:
       self.addControls(prog_button)
每次添加按钮列表时,您能否帮助我如何将按钮存储在数组中


如果可能的话,请告诉我。

如果您选择了
我的列表[3]。append()
您试图将其添加到列表中,该列表是
我的列表中的第四项。您也可以将其编写为
(mylist[3])。append()
以使其更清楚

如果要附加到
mylist
,只需使用
mylist.append()
。如果要在某个索引上设置它,可以使用
list.insert(index,item)
;但是,如果列表没有
索引
那么长,那么它只会追加到末尾

如果要使用特定键,请改用
dict()

mydict = {}
dict[3] = my_item

在您的情况下,我只会使用
self.add\u programs.append()

如果您使用
mylist[3]。append()
您尝试将其附加到列表中,该列表是
mylist
中的第四项。您也可以将其编写为
(mylist[3])。append()
以使其更清楚

如果要附加到
mylist
,只需使用
mylist.append()
。如果要在某个索引上设置它,可以使用
list.insert(index,item)
;但是,如果列表没有
索引
那么长,那么它只会追加到末尾

如果要使用特定键,请改用
dict()

mydict = {}
dict[3] = my_item

在您的情况下,我只会使用
self.add\u programs.append()

如果您使用
mylist[3]。append()
您尝试将其附加到列表中,该列表是
mylist
中的第四项。您也可以将其编写为
(mylist[3])。append()
以使其更清楚

如果要附加到
mylist
,只需使用
mylist.append()
。如果要在某个索引上设置它,可以使用
list.insert(index,item)
;但是,如果列表没有
索引
那么长,那么它只会追加到末尾

如果要使用特定键,请改用
dict()

mydict = {}
dict[3] = my_item

在您的情况下,我只会使用
self.add\u programs.append()

如果您使用
mylist[3]。append()
您尝试将其附加到列表中,该列表是
mylist
中的第四项。您也可以将其编写为
(mylist[3])。append()
以使其更清楚

如果要附加到
mylist
,只需使用
mylist.append()
。如果要在某个索引上设置它,可以使用
list.insert(index,item)
;但是,如果列表没有
索引
那么长,那么它只会追加到末尾

如果要使用特定键,请改用
dict()

mydict = {}
dict[3] = my_item


在您的情况下,我只会使用
self.add\u programs.append()

但是,我不完全理解您要做什么,但是如果您根本不为列表编制索引呢?像
self.add\u programs.append(ProgramControls(program\u controls,program))
self.add\u programs
self.rows
短;例如,考虑:
arr=[1];arr[2]
。。。没有
arr[2]
,因此您会收到此错误。。。。您可能想使用
self.add_程序[self.rows-1]
,但我没有仔细检查您的代码…请尝试
self.add_程序.append(…)
@Javier我可以使用
self.add\u programs.append
,这是可行的,但我试图读取一个按钮列表来存储在数组中,但它不允许,因为控件已经被使用了。如何读取要存储在数组中的按钮列表?请注意,您有一些代码没有正确缩进,可能在您希望执行时不会执行(
prog\u button=
如果self.programs
可能在类首次启动时执行).我不完全明白你想做什么,但是如果你根本不给列表编制索引呢?像
self.add\u programs.append(ProgramControls(program\u controls,program))
self.add\u programs
self.rows
短;例如,考虑:
arr=[1];arr[2]
。。。没有
arr[2]
,因此您会收到此错误。。。。您可能想使用
self.add_程序[self.rows-1]
,但我没有仔细检查您的代码…请尝试
self.add_程序.append(…)
@Javier我可以使用
self.add\u programs.append
,这是可行的,但我试图读取一个按钮列表来存储在数组中,但它不允许,因为控件已经被使用了。如何读取要存储在数组中的按钮列表?请注意,您有一些代码没有正确缩进,可能在您希望执行时不会执行(
prog\u button=
如果self.programs
可能在类首次启动时执行).我不完全明白你想做什么,但是如果你根本不给列表编制索引呢?像
self.add\u programs.append(ProgramControls(program\u controls,program))
self.add\u programs
self.rows
短;例如,考虑:
arr=[1];arr[2]
。。。没有
arr[2]
,因此您会收到此错误。。。。您可能想使用
self.add_程序[self.rows-1]
,但我没有仔细检查您的代码…请尝试
self.add_程序.append(…)
@Javier我可以使用
self.add_程序.append
,它可以工作,但我不能