Een matrix kan weergegeven worden als een geneste lijst.

Voorbeeld

De matrix m = $$ \left[ \begin{array}{ccc} 1 & 2 & 3\\ 4 & 5 & 6\\ 7 & 8 & 9\\ \end{array} \right] $$ wordt in Python de lijst m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Een geneste lijst is een representatie van een vierkante matrix als elke sublijst evenveel elementen telt als de hoofdlijst.

Als in de opgave hieronder een vierkante matrix gegeven wordt, mag je ervan uitgaan dat dit een geneste lijst is die daaraan voldoet. De lege lijst [] wordt als een correcte matrix beschouwd met 0 rijen en 0 kolommen.

Opgave

Schrijf een functie diagonaal_sorteren die één argument heeft: een geneste lijst die de representatie is van een vierkante matrix zoals hierboven gedefinieerd. De functie sorteert de elementen op de diagonaal van klein naar groot. De elementen die niet op de diagonaal staan, blijven hetzelfde.

De functie retourneert een matrix van dezelfde dimensie als het argument.

Voorbeeld

De matrix $$ \left[ \begin{array}{ccc} 12 & 0 & 3\\ 5 & 30 & 6\\ 6 & 2 & 1\\ \end{array} \right] $$ wordt na diagonale sortering $$ \left[ \begin{array}{ccc} 1 & 0 & 3\\ 5 & 12 & 6\\ 6 & 2 & 30\\ \end{array} \right] $$

>>> diagonaal_sorteren([[47, 39, 46], [42, 9, 14], [49, 27, 50]])
[[9, 39, 46], [42, 47, 14], [49, 27, 50]]
>>> diagonaal_sorteren([[47, 9, 33], [24, 5, 41], [50, 43, 35]])
[[5, 9, 33], [24, 35, 41], [50, 43, 47]]
>>> diagonaal_sorteren([[31, 9], [25, 6]])
[[6, 9], [25, 31]]