我有一个列表,它将联系人对象的y坐标存储在列表中,这样我就可以访问联系人在屏幕上相对于y位置的信息。如果这是有用的信息,我会使用PyGame。在
打印list很好并返回正确的值,但是当我试图在主事件循环中访问列表时,在使用for
循环遍历列表时,会出现上述错误。在
下面是将y值附加到我的列表的代码:
class MainPage(Page):
...
def printContacts(self):
addressBook = AddressBook()
addressBook.contactsList
addressBook.contactsList.sort(key = lambda c: (c.lastName, c.firstName) if c.lastName else (c.firstName, ""))
contactFont = pygame.font.SysFont("trebuchet ms", 18)
global indexedContacts
indexedContacts = {}
global yIndex
yIndex = [] #List to append y values to
y = 20
for (key, g) in groupby(addressBook.contactsList, lambda c: c.lastName[0] if c.lastName else c.firstName[0]):
groupName = contactFont.render(key, True, (171,0,0))
self.intermediate2.blit(groupName, (5, y))
pygame.draw.line(self.intermediate2, (0,0,0), (5,(y+20)), (320, (y+20)), 1)
y += 30
for i in g:
name = i.firstName + " " + i.lastName
textName = contactFont.render(name, True, (0,0,0))
pygame.draw.line(self.intermediate2, (210,210,210), (5,(y+20)), (320, (y+20)), 1)
self.intermediate2.blit(textName, (5, y))
indexedContacts[(y+72)] = i
yIndex.append((y+72)) #Appends current value to list
y += 30
以下是返回错误的事件代码:
^{pr2}$
解决了我自己的问题,}成为{}列表中的每一项时生成错误,就像他的答案中解释的eddieferetro。在
yIndex[i]
在{因此,从本质上讲,准则应该是:
基本上,一个非常常见的错误。在
给你在i中的yIndex值。。。。在
我不是索引,是元素本身。就像在java中:
^{pr2}$在yout的情况下,yIndex是一个整数数组,因此错误就像索引超出范围异常一样出现
要获取索引,应编写:
在您的情况下,您希望:
我将是索引,yIndex是值
相关问题 更多 >
编程相关推荐