blob: 9fbcc02ad5bb5f5434f68f00a694dbc648ddd68b [file] [log] [blame]
Guido van Rossumae3b3a31993-11-30 13:43:54 +00001# A more or less complete user-defined wrapper around list objects
2
3class UserList:
4 def __init__(self, *args):
5 if len(args) > 1: raise TypeError, 'too many args'
6 self.data = []
7 if args:
8 list = args[0]
9 if type(list) == type(self.data):
10 self.data[:] = list
11 else:
12 self.data[:] = list.data[:]
13 def __repr__(self): return repr(self.data)
14 def __cmp__(self, list):
15 if type(list) == type(self.data):
16 return cmp(self.data, list)
17 else:
18 return cmp(self.data, list.data)
19 def __len__(self): return len(self.data)
20 def __getitem__(self, i): return self.data[i]
21 def __setitem__(self, i, item): self.data[i] = item
22 def __delitem__(self, i): del self.data[i]
23 def __getslice__(self, i, j):
24 userlist = UserList()
25 userlist.data[:] = self.data[i:j]
26 return userlist
27 def __setslice__(self, i, j, list):
28 if type(list) == type(self.data):
29 self.data[i:j] = list
30 else:
31 self.data[i:j] = list.data
32 def __delslice__(self, i, j): del self.data[i:j]
33 def append(self, item): self.data.append(item)
34 def insert(self, i, item): self.data.insert(i, item)
35 def remove(self, item): self.data.remove(item)
36 def count(self, item): return self.data.count(item)
37 def index(self, item): return self.data.index(item)
38 def reverse(self): self.data.reverse()
39 def sort(self, *args): apply(self.data.sort, args)