大家在使用Python的list类时,有四个地方不太好用:
(1)初始化时不能自动将迭代对象转换为list。
(2)查找数据,如果没找到,会提示异常,不能返回为-1。
(3)删除数据时,重复数据只能删除一次,无法将所有都删除。
(4)每次append都只能从尾部插入。
自己设计一个list类,可以去掉以上这些bug。代码如下:
__author__ = 'jcy'
from collections import Iterable
class mylist(list):
def __init__(self,s):
list.__init__(self,s)
if isinstance(s,Iterable):
self.s=list(s)
else:
self.s=None
def append(self,p_object,isEnd=True): #修改为从头插入了。
try:
if isEnd:
self.s.append(p_object)
else:
self.s.insert(0,p_object)
except:
self.error=1
def __repr__(self):
try:
for yy in self.s:
print(yy)
finally:
return ""
def remove(self, value): #把所有的数据都要删除
try:
while value in self.s:
self.s.remove(value)
except:
self.error=1
def index(self, value, start=None, stop=None):
try:
if value not in self.s:
return -1
else:
return self.s.index(value)
except:
ss=1
tet=mylist([1,2,3,4,3,3,34,4,54,3,4])
print(tet)
tet.append(33) #从头插入。
print(tet)
tet.remove(4) #删除所有4
print(tet)
tet.append(33)
print("index=",tet.index(13))