获取集合索引以循环使用



当使用诸如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)

最新更新