当使用诸如python列表之类的集合时,有没有一种方法可以使我的索引"连续的";?例如,假设我有以下列表:
list=[0,1,2,3]
这里没有定义list[3]=3
,但list[4]
。。。是否可以设置我的集合,使它们循环返回,从而使list[4]=0, list[8]=0..., list[280]=0...
,即使我的列表仍然只包含这4个元素?
这就是你可以做到的。如果你初始化一次类,那么更改就会完成。
class list_no_stop(list):
def __getitem__(self,i):
return list(self)[i % len(self)]
def __setitem__(self,x,i):
nv=list(self)
nv[x % len(self)]=i
self.clear()
self.extend(nv)
newlist=list_no_stop([1,2,3,5])
print(newlist[100])
#print(newlist[11])
newlist[11]=80
#newlist[12]=1000
newlist[12]=1000
print(newlist)