有若干类型的数据组成的列表,按照分组对列表中的数据重新排列。要求连续10个元素的分组不同。
item1 = [("a1",1) for _ in range(20)]
item2 = [("a2",2) for _ in range(20)]
item3 = [("a3",3) for _ in range(20)]
item4 = [("a4",4) for _ in range(20)]
item5 = [("a5",5) for _ in range(20)]
item6 = [("a6",6) for _ in range(20)]
item7 = [("a7",7) for _ in range(20)]
item8 = [("a8",8) for _ in range(20)]
item9 = [("a9",9) for _ in range(20)]
item10 = [("a10",10) for _ in range(20)]
item11 = [("a11",11) for _ in range(20)]
all_item = item1 + item2 + item3 + item4 + item5 + item6 + item7 + item8 + item9 + item10 + item11
from collections import MutableSequence
class MyList(MutableSequence):
"""A container for manipulating lists of hosts
保证列表中只有10个元素
"""
def __init__(self, data=None):
"""Initialize the class"""
super(MyList, self).__init__()
if (data is not None):
self._list = list(data)
else:
self._list = list()
def __len__(self):
"""List length"""
return len(self._list)
def __getitem__(self, ii):
"""Get a list item"""
return self._list[ii]
def __delitem__(self, ii):
"""Delete an item"""
del self._list[ii]
def __setitem__(self, ii, val):
# optional: self._acl_check(val)
self._list[ii] = val
def __str__(self):
return str(self._list)
def insert(self, ii, val):
# optional: self._acl_check(val)
self._list.insert(ii, val)
def append(self, val):
if len(self._list) >= 9:
self._list.pop(0)
self._list.insert(len(self._list), val)
else:
self.insert(len(self._list), val)
i = 0
tag = 0
res = []
mylist = MyList()
while len(res)<=100:
if i >=10 and tag >= 10:
i = 0
tag = 0
temp = all_item[i]
v = temp[0]
c = temp[1]
if c not in mylist:
mylist.append(c)
res.append(v)
all_item.pop(i)
tag += 1
else:
i += 1
print(res)
print(all_item)