In the previous lesson, you stored your immutable data structures (namedtuple
) in an mutable one (list
). Now, you’ll see how you can replace that list with a tuple, which is like a list but immutable:
import collections
Scientist = collections.namedtuple('Scientist', [
'name',
'field',
'born',
'nobel',
])
scientists = (
Scientist(name='Ada Lovelace', field='math', born=1815, nobel=False),
Scientist(name='Emmy Noether', field='math', born=1882, nobel=False),
Scientist(name='Marie Curie', field='math', born=1867, nobel=True),
Scientist(name='Tu Youyou', field='physics', born=1930, nobel=True),
Scientist(name='Ada Yonath', field='chemistry', born=1939, nobel=True),
Scientist(name='Vera Rubin', field='chemistry', born=1928, nobel=False),
Scientist(name='Sally Ride', field='physics', born=1951, nobel=False),
)
Now, you can access all of your data by index, but you’re no longer in danger of tampering with it. That’s exactly what you want to have when you’re taking a functional programming approach with a data set!
Xavier on Nov. 12, 2019
Some mistakes in the field values which will result in different answers in Section 2 on the filter function. They should be: