
Data Types
**********

The modules described in this chapter provide a variety of specialized
data types such as dates and times, fixed-type arrays, heap queues,
synchronized queues, and sets.

Python also provides some built-in data types, in particular,
``dict``, ``list``, ``set`` and ``frozenset``, and ``tuple``.  The
``str`` class is used to hold Unicode strings, and the ``bytes`` class
is used to hold binary data.

The following modules are documented in this chapter:

* ``datetime`` --- Basic date and time types
  * Available Types
  * ``timedelta`` Objects
  * ``date`` Objects
  * ``datetime`` Objects
  * ``time`` Objects
  * ``tzinfo`` Objects
  * ``timezone`` Objects
  * ``strftime()`` and ``strptime()`` Behavior
* ``calendar`` --- General calendar-related functions
* ``collections`` --- Container datatypes
  * ``ChainMap`` objects
    * ``ChainMap`` Examples and Recipes
  * ``Counter`` objects
  * ``deque`` objects
    * ``deque`` Recipes
  * ``defaultdict`` objects
    * ``defaultdict`` Examples
  * ``namedtuple()`` Factory Function for Tuples with Named Fields
  * ``OrderedDict`` objects
    * ``OrderedDict`` Examples and Recipes
  * ``UserDict`` objects
  * ``UserList`` objects
  * ``UserString`` objects
* ``collections.abc`` --- Abstract Base Classes for Containers
  * Collections Abstract Base Classes
* ``heapq`` --- Heap queue algorithm
  * Basic Examples
  * Priority Queue Implementation Notes
  * Theory
* ``bisect`` --- Array bisection algorithm
  * Searching Sorted Lists
  * Other Examples
* ``array`` --- Efficient arrays of numeric values
* ``weakref`` --- Weak references
  * Weak Reference Objects
  * Example
* ``types`` --- Dynamic type creation and names for built-in types
  * Dynamic Type Creation
  * Standard Interpreter Types
* ``copy`` --- Shallow and deep copy operations
* ``pprint`` --- Data pretty printer
  * PrettyPrinter Objects
  * Example
* ``reprlib`` --- Alternate ``repr()`` implementation
  * Repr Objects
  * Subclassing Repr Objects