[英]python error: IndexError: list index out of range
I need some basic help with my code, I'm trying to create a new list with the value for the variable self.add_programs
in each time when I use the variable program_controls
to add a list of buttons to store in the arrays. 我需要一些基本的代码帮助,每次使用变量
program_controls
添加按钮列表以存储在数组中时,我都尝试使用变量self.add_programs
的值创建一个新列表。
When I try this: 当我尝试这个:
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))
It give me the error: IndexError: list index out of range 它给我错误:IndexError:列表索引超出范围
The error are jumping on this line: 错误在此行上跳跃:
self.add_programs[self.rows].append(ProgramControls(program_controls, program))
Here is the code: 这是代码:
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)
Can you please help me how I can store the buttons in the arrays in each time when I add a list of buttons? 您能帮我每次添加按钮列表时如何将按钮存储在数组中吗?
If that is possible, please let me know. 如果可以的话,请告诉我。
If you do mylist[3].append()
you're trying to append to a list that's the 4th item in your mylist
. 如果您执行
mylist[3].append()
,则尝试追加到mylist
。 You could also write this as (mylist[3]).append()
to make this more clear. 您也可以将其写为
(mylist[3]).append()
以使其更加清楚。
If you want to append to mylist
, you need to just use mylist.append()
. 如果要追加到
mylist
,则只需使用mylist.append()
。 If you want to set it on a certain index, you can use list.insert(index, item)
; 如果要在某个索引上设置它,可以使用
list.insert(index, item)
; however, if the list is not as long as index
, it'll just be appended at the end. 但是,如果列表的长度不如
index
,则将其附加在末尾。
If you want to use specific keys, use a dict()
instead: 如果要使用特定键,请改用
dict()
:
mydict = {}
dict[3] = my_item
In your case, I'd just use self.add_programs.append()
however. 在您的情况下,我只是使用
self.add_programs.append()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.