# Python – Sort Matrix by Row Median

• Last Updated : 11 Oct, 2020

Given a Matrix, sort by median of each row.

Input : test_list = [[3, 4, 7], [1, 7, 2], [10, 2, 4], [8, 6, 5]]
Output : [[1, 7, 2], [3, 4, 7], [10, 2, 4], [8, 6, 5]]
Explanation : 2 < 3 < 4 < 6, sorted increasingly by median element.

Input : test_list = [[3, 4, 7], [1, 7, 2], [8, 6, 5]]
Output : [[1, 7, 2], [3, 4, 7], [8, 6, 5]]
Explanation : 2 < 3 < 6, sorted increasingly by median element.

Method #1 : Using sort() + median()

In this, we perform sort using sort() and median is computed using statistics function of computing median, median().

## Python3

 `# Python3 code to demonstrate working of  ` `# Sort Matrix by Row Median ` `# Using sort() + median() ` `from` `statistics ``import` `median ` ` `  `def` `med_comp(row): ` `     `  `    ``# computing median ` `    ``return` `median(row) ` ` `  `# initializing list ` `test_list ``=` `[[``3``, ``4``, ``7``], [``1``, ``7``, ``2``], [``10``, ``2``, ``4``], [``8``, ``6``, ``5``]] ` ` `  `# printing original list ` `print``(``"The original list is : "` `+` `str``(test_list)) ` ` `  `# inplace sorting using sort() ` `test_list.sort(key ``=` `med_comp) ` ` `  `# printing result  ` `print``(``"Sorted Matrix : "` `+` `str``(test_list)) `

Output

```The original list is : [[3, 4, 7], [1, 7, 2], [10, 2, 4], [8, 6, 5]]
Sorted Matrix : [[1, 7, 2], [3, 4, 7], [10, 2, 4], [8, 6, 5]]

```

Method #2 : Using sorted() + lambda + median()

In this, we perform task of perform sort using sorted(), and lambda function is used as key function rather than external function.

## Python3

 `# Python3 code to demonstrate working of  ` `# Sort Matrix by Row Median ` `# Using sorted() + lambda + median() ` `from` `statistics ``import` `median ` ` `  `# initializing list ` `test_list ``=` `[[``3``, ``4``, ``7``], [``1``, ``7``, ``2``], [``10``, ``2``, ``4``], [``8``, ``6``, ``5``]] ` ` `  `# printing original list ` `print``(``"The original list is : "` `+` `str``(test_list)) ` ` `  `# inplace sorting using sort() ` `res ``=` `sorted``(test_list, key ``=` `lambda` `row : median(row)) ` ` `  `# printing result  ` `print``(``"Sorted Matrix : "` `+` `str``(res)) `

Output

```The original list is : [[3, 4, 7], [1, 7, 2], [10, 2, 4], [8, 6, 5]]
Sorted Matrix : [[1, 7, 2], [3, 4, 7], [10, 2, 4], [8, 6, 5]]

```

My Personal Notes arrow_drop_up
Related Articles