home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyth_os2.zip / python-1.0.2 / Lib / UserList.py < prev    next >
Text File  |  1993-12-29  |  1KB  |  40 lines

  1. # A more or less complete user-defined wrapper around list objects
  2.  
  3. class 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)
  40.