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