def rec_max(L):
''' (list or int) -> int Return L if it's an int, or the maximum int in L, a possibly nested list of numbers. Assume: L is an int or non-empty list >>> rec_max([17, 21, 0]) 21 >>> rec_max([17, [21, 24], 0]) 24 ''' if isinstance(L, list): return max([rec_max(x) for x in L]) else: return LIn this function, the function re_max is called again and again until we find the elements that are not lists and the loop stops.
We did a lot of tracing in the lecture and in the tutorial, starting with depth 0 and moved on to more complicated examples gradually. We can also find the docstring by calling and tracing examples, just like we did in the tutorial.
By calling non-lists or empty list, we get the special cases of the function. How I understand this is checking the 'else:' and checking the build-in method called in the recursion. Then we check examples with more depth, and we can conclude the docstring and the assumption.
The first term test is next week, wish everyone a good grade!
没有评论:
发表评论