Computing in Python III: Data Structures