8. 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" (which along with "frozenset", replaces the deprecated "sets" module), and "tuple". The "str" class can be used to handle binary data and 8-bit text, and the "unicode" class to handle Unicode text. The following modules are documented in this chapter: * 8.1. "datetime" — Basic date and time types * 8.1.1. Available Types * 8.1.2. "timedelta" Objects * 8.1.3. "date" Objects * 8.1.4. "datetime" Objects * 8.1.5. "time" Objects * 8.1.6. "tzinfo" Objects * 8.1.7. "strftime()" and "strptime()" Behavior * 8.2. "calendar" — General calendar-related functions * 8.3. "collections" — High-performance container datatypes * 8.3.1. "Counter" objects * 8.3.2. "deque" objects * 8.3.2.1. "deque" Recipes * 8.3.3. "defaultdict" objects * 8.3.3.1. "defaultdict" Examples * 8.3.4. "namedtuple()" Factory Function for Tuples with Named Fields * 8.3.5. "OrderedDict" objects * 8.3.5.1. "OrderedDict" Examples and Recipes * 8.3.6. Collections Abstract Base Classes * 8.4. "heapq" — Heap queue algorithm * 8.4.1. Basic Examples * 8.4.2. Priority Queue Implementation Notes * 8.4.3. Theory * 8.5. "bisect" — Array bisection algorithm * 8.5.1. Searching Sorted Lists * 8.5.2. Other Examples * 8.6. "array" — Efficient arrays of numeric values * 8.7. "sets" — Unordered collections of unique elements * 8.7.1. Set Objects * 8.7.2. Example * 8.7.3. Protocol for automatic conversion to immutable * 8.7.4. Comparison to the built-in "set" types * 8.8. "sched" — Event scheduler * 8.8.1. Scheduler Objects * 8.9. "mutex" — Mutual exclusion support * 8.9.1. Mutex Objects * 8.10. "Queue" — A synchronized queue class * 8.10.1. Queue Objects * 8.11. "weakref" — Weak references * 8.11.1. Weak Reference Objects * 8.11.2. Example * 8.12. "UserDict" — Class wrapper for dictionary objects * 8.13. "UserList" — Class wrapper for list objects * 8.14. "UserString" — Class wrapper for string objects * 8.15. "types" — Names for built-in types * 8.16. "new" — Creation of runtime internal objects * 8.17. "copy" — Shallow and deep copy operations * 8.18. "pprint" — Data pretty printer * 8.18.1. PrettyPrinter Objects * 8.18.2. pprint Example * 8.19. "repr" — Alternate "repr()" implementation * 8.19.1. Repr Objects * 8.19.2. Subclassing Repr Objects