Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Min and Max solution in Clear category for Min and Max by graffme
def min(*args, **kwargs):
key = kwargs.get("key", None)
#stwórz listę z argumentów funkcji
if len(args) == 1:
elements = args[0]
else:
elements = args[:]
#przeiteruj szukają najmniejszego elem (jeśli znajdziesz mniejszy zamień), uwzględnij key!
minimal = None
for elem in elements:
if minimal is None:
minimal = elem
elif key is not None:
if key(elem) < key(minimal):
minimal = elem
else:
if elem < minimal:
minimal = elem
return minimal
def max(*args, **kwargs):
key = kwargs.get("key", None)
if len(args) == 1:
elements = args[0]
else:
elements = args[:]
maximal = None
for elem in elements:
if maximal is None:
maximal = elem
elif key is not None:
if key(elem) > key(maximal):
maximal = elem
else:
if elem > maximal:
maximal = elem
return maximal
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert max(3, 2) == 3, "Simple case max"
assert min(3, 2) == 2, "Simple case min"
assert max([1, 2, 0, 3, 4]) == 4, "From a list"
assert min("hello") == "e", "From string"
assert max(2.2, 5.6, 5.9, key=int) == 5.6, "Two maximal items"
assert min([[1, 2], [3, 4], [9, 0]], key=lambda x: x[1]) == [9, 0], "lambda key"
Jan. 12, 2017