Using an immutable namedtuple as a record
In Chapter 3, Functions, Iterators, and Generators, we showed two common techniques to work with tuples. We've also hinted at a third way to handle complex structures. We can do any of the following, depending on the circumstances:
Use
lambdas
(or functions) to select a named item using the indexUse
lambdas
(or functions) with*parameter
to select an item by parameter name, which maps to an indexUse
namedtuples
to select an item by attribute name or index
Our trip data, introduced in Chapter 4, Working with Collections, has a rather complex structure. The data started as an ordinary time series of position reports. To compute the distances covered, we transposed the data into a sequence of legs with a start position, end position, and distance as a nested three-tuple.
Each item in the sequence of legs looks as follows as a three-tuple:
first_leg= ((37.54901619777347, -76.33029518659048), (37.840832, -76.273834), 17.7246)
This is a short trip between...