Collections Module
Python - Collections Module
Section titled “Python - Collections Module”The collections module provides alternatives to built-in container data types such as list, tuple and dict.
namedtuple()
Section titled “namedtuple()”The namedtuple() function returns a tuple-like object with named fields. These field attributes are accessible by lookup as well as by index.
namedtuple()
General usage of this function is:
collections.namedtuple(type_name, field-list)The following statement declares a student class having name, age and marks as fields.
import collections
student = collections.namedtuple('student', ['name', 'age', 'marks'])`import collections
student = collections.namedtuple(‘student’, [‘name’, ‘age’, ‘marks’])` To create a new object of this namedtuple, do the following:
s1 = student("Imran", 21, 98)print(s1.name)print(s1.age)print(s1.marks)
print(s1[0])print(s1[1])print(s1[2])`s1 = student(“Imran”, 21, 98) print(s1.name) print(s1.age) print(s1.marks)
print(s1[0])
print(s1[1])
print(s1[2])[Try it](/codeeditor?cid=python-3z83c3ubb) The example create an object of the student tuple and access the values of the field by using the dot notation s1.name and also using index s1[0]. students1.names1[0]`
OrderedDict()
Section titled “OrderedDict()”The OrderedDict() function is similar to a normal dictionary object in Python. However, it remembers the order of the keys in which they were first inserted.
OrderedDict()
import collections
d1 = collections.OrderedDict()d1['A'] = 65d1['C'] = 67d1['B'] = 66d1['D'] = 68
for k,v in d1.items(): print (k,v)`import collections
d1 = collections.OrderedDict() d1[‘A’] = 65 d1[‘C’] = 67 d1[‘B’] = 66 d1[‘D’] = 68
for k,v in d1.items(): print (k,v)`Try it
A 65 C 67 B 66 D 68A 65 C 67 B 66 D 68
Upon traversing the dictionary, pairs will appear in the order of their insertion.
deque()
Section titled “deque()”A deque object support appends and pops from either ends of a list. It is more memory efficient than a normal list object. In a normal list object, the removal of any item causes all items to the right to be shifted towards left by one index. Hence, it is very slow.
import collections
q = collections.deque([10,20,30,40])q.appendleft(0)print(q)
q.append(50)print(q)
print(q.pop())print(q)
print(q.popleft())print(q)`import collections
q = collections.deque([10,20,30,40]) q.appendleft(0) print(q)
q.append(50) print(q)
print(q.pop()) print(q)
print(q.popleft()) print(q)`Try it Learn more about the collections module in Python docs. collections module in Python docs