Python: classifica uma matriz de dicionários com um comparador personalizado?

Eu tenho o seguinte array Python de dicionários:

<code>myarr = [ { 'name': 'Richard', 'rank': 1 },
{ 'name': 'Reuben', 'rank': 4 },
{ 'name': 'Reece', 'rank': 0 },
{ 'name': 'Rohan', 'rank': 3 },
{ 'name': 'Ralph', 'rank': 2 },
{ 'name': 'Raphael', 'rank': 0 },
{ 'name': 'Robin', 'rank': 0 } ]
</code>

Eu gostaria de classificá-lo pelos valores de classificação, fazendo o seguinte: 1-2-3-4-0-0-0.

Se eu tentar:

<code>sorted_master_list = sorted(myarr, key=itemgetter('rank'))
</code>

então a lista é classificada na ordem 0-0-0-1-2-3-4.

Como posso definir uma função de comparador personalizada para empurrar zeros para a parte inferior da lista? Eu estou querendo saber se eu posso usar algo comomethodcaller.

questionAnswers(8)

yourAnswerToTheQuestion