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
,它可以工作,但我不能