The following code gets the last present value from an ordered list of dated values:
def test_get_last_value(self):
dated_optional_values = [(datetime.datetime(2015, 2, 23), None),
(datetime.datetime(2015, 2, 24), 1.23),
(datetime.datetime(2015, 2, 25), None),
(datetime.datetime(2015, 2, 26), 2.34),
(datetime.datetime(2015, 2, 27), None),
]
present_values = [dated_optional_value[1] for dated_optional_value in dated_optional_values
if dated_optional_value[1] is not None]
last_present_value = present_values[-1]
print('last_present_value=', last_present_value)
I can easily write a loop which starts at the end of the list and iterates back until it finds a value.
Is there a more Pythonic way to accomplish that?