Preface
  Part I. Prologue
  1. The Python Data Model
  A Pythonic Card Deck
  How Special Methods Are Used
  Emulating Numeric Types
  String Representation
  Arithmetic Operators
  Boolean Value of a Custom Type
  Overview of Special Methods
  Why len Is Not a Method
  Chapter Summary
  Further Reading
  Part II. Data Structures
  2. An Array of Sequences
  Overview of Built-In Sequences
  List Comprehensions and Generator Expressions
  List Comprehensions and Readability
  Listcomps Versus map and filter
  Cartesian Products
  Generator Expressions
  Tuples Are Not Just Immutable Lists
  Tuples as Records
  Tuple Unpacking
  Nested Tuple Unpacking
  Named Tuples
  Tuples as Immutable Lists
  Slicing
  Why Slices and Range Exclude the Last Item
  Slice Objects
  Multidimensional Slicing and Ellipsis
  Assigning to Slices
  Using + and * with Sequences
  Building Lists of Lists
  Augmented Assignment with Sequences
  A += Assignment Puzzler
  list.sort and the sorted Built-In Function
  Managing Ordered Sequences with bisect
  Searching with bisect
  Inserting with bisect.insort
  When a List Is Not the Answer
  Arrays
  Memory Views
  NumPy and SciPy
  Deques and Other Queues
  Chapter Summary
  Further Reading
  3. Dictionaries and Sets
  Generic Mapping Types
  dict Comprehensions
  Overview of Common Mapping Methods
  Handling Missing Keys with setdefault
  Mappings with Flexible Key Lookup
  defaultdict: Another Take on Missing Keys
  The___ missing___ Method
  Variations of dict
  Subclassing UserDict
  Immutable Mappings
  Set Theory
  set Literals
  Set Comprehensions
  Set Operations
  dict and set Under the Hood
  A Performance Experiment
  Hash Tables in Dictionaries
  ……
  Part III. Functions as Objects
  Part IV. Object-Orientedldioms
  Part V. Control Flow
  Part VI. Metaprogramming
  Afterword
  A. Support Scripts
  Python Jargon
  Index