Odpowiedz nam, dlaczego 5 ma być wieksze od (1, 2);w jaki sposób Porównujesz tak różne obiekty?
Edit:
Nie daje mi to spokoju, bo może chodziło Ci o znalezienie max w zagnieżdzonym z róznymi typami obiekcie? (to można by pisać jaśniej). Jak tak, to prosty rekurencyjny programik(python3.5):
#4programmers: https://4programmers.net/Forum/Python/293402-zwracanie_maksymalnej_wartosci_zmiennej?p=1384299#id1384299
def rec_max(xs):
if len(xs) == 0:
return 0
else:
if isinstance(xs[0], int):
return max(xs[0], rec_max(xs[1:]))
else:
return max(rec_max(xs[0]), rec_max(xs[1:]))
print(rec_max([[3, 4], (3, 5), [[3], [6]], 4]))
Widać co robi: jak pierwszy element (głowa) jest liczbą, to bierze max z niej i rekurencyjnie z reszty obiektu, a jeśli nie jest(jest obiektem złożonym), to zwraca max z: najpierw rekurencyjnie z pierwszego elementu i, również rekurencyjnie, z reszty. Tu daje poprawnie 6, nie stosować jednak jako kod produkcyjny- nie był solidnie testowany, ani optymalizowany.