python3:列出赋值索引超出范围


def enque(self,data):
if (self.end==self.msize-1 & self.front==0):
print('Q is full')
elif self.front==-1:
self.front=0
self.end=0
self.q[self.end]=data

检查self.q的长度(即len(self.q))(,我想你会看到长度是0.为了在列表中有一个0索引(即self.q[0](,您希望看到self.q长度为 1。由于列表没有索引0,因此不能写入值。

不要指定不直接存在的索引位置值,而是尝试将该值append到列表中。

def enque(self,data):
if (self.end==self.msize-1 & self.front==0):
print('Q is full')
elif self.front==-1:
self.front=0
self.end=0
#self.q[self.end]=data
self.q.append(data)

请注意,append将始终将数据放在列表的末尾。如果self.q已经有一些其他值,则追加不会导致数据被放置在索引 0 中。

如果要始终将其放在索引 0(如果存在(或创建索引 0(如果不存在(,则可以执行以下操作:

if self.q: # only non-empty list will pass
self.q[self.end] = data
else:      # empty list
self.q.append(data)

最新更新