Python collections.UserList

The class UserList in Python acts as a wrapper around a list-objects. This class is useful when one wants to create a list of their own with some modified functionality. In other words, it can be considered as a way of adding new behaviours to the list. This class takes a list instance as an argument and simulates a list that is kept in a regular list. So, the list is accessible by the data attribute of this class.

Syntax :

The signature for the UserList is as shown below.

collections.UserList([list])

Python UserList Examples:

Example 1: In this example, we will create a UserList using the existing list object. In this case, the list is now available as an attribute.

#Importing UserList 
from collections import UserList 
#Initializing
data = ['Delhi', 'Madhya Pradesh','Maharashtra']
 
ud = UserList(data) 
print(ud.data)

Output

['Delhi', 'Madhya Pradesh','Maharashtra']

Example 2: In this case, we will create a UserList wherein it acts as a wrapper class for a customized list object. Thus, it will let us update attributes to the existing list to the UserList.

#Importing UserList 
from collections import UserList
class info(UserList):
      
    def replace(self, s = None,r=None):
        self.append(r)
        self.remove(s)
      
o = info([100,200,300])
  
print(o)
  
#changing value in list
o.replace(200,"India")
print(o)

Output

[100, 200, 300]
[100, 300, 'India']

Example 3: In this case, we will create a UserList wherein it acts as a wrapper class for a customized list object. Thus, it will let us delete attributes to the existing list to the UserList.

#Importing UserList 
from collections import UserList
#Defining class  
class info(UserList):
      
    def deletevalue(self, s = None):
        self.remove(s)
#Creating object      
o = info([100,200,300])

print(o)
  
#deleting value 
o.deletevalue(200)
print(o)

Output

[100, 200, 300]
[100, 300]

References

Happy Learning 🙂