so farwe have looked at the built-in datatypes of stringslistssetsand dictionaries as well as the decimal and fractions modules they are often described by the term abstract data types (adtsadts can be considered as mathematical specifications for the set of operations that can be performed on data they are defined by their behavior rather than their implementation in addition to the adts that we have looked atthere are several python libraries that provide extensions to the built-in datatypes these will be discussed in the following section collections the collections module provides more specializedhighperformance alternatives for the built-in data types as well as utility function to create named tuples the following table lists the datatypes and operations of the collections module and their descriptionsdatatype or operation description namedtuple(creates tuple subclasses with named fields deque lists with fast appends and pops either end chainmap dictionary like class to create single view of multiple mappings counter dictionary subclass for counting hashable objects ordereddict dictionary subclass that remembers the entry order defaultdict dictionary subclass that calls function to supply missing values userdict userlist userstring these three data types are simply wrappers for their underlying base classes their use has largely been supplanted by the ability to subclasas their respective base classes directly can be used to access the underlying object as an attribute deques double-ended queuesor deques (usually pronounced decks)are list-like objects that support thread-safememory-efficient appends deques are mutable and support some of the operations of listssuch as indexing deques can be assigned by indexfor exampledq[ zhoweverwe cannot directly slice deques for exampledq[ : results in typeerror (we will look at way to return slice from deque as list shortly