Python: ordena una serie de diccionarios con comparador personalizado?

Tengo la siguiente serie de diccionarios de Python:

<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>

Me gustaría ordenarlo por los valores de rango, ordenando de la siguiente manera: 1-2-3-4-0-0-0.

Si lo intento

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

entonces la lista se ordena en el orden 0-0-0-1-2-3-3.

¿Cómo puedo definir una función de comparación personalizada para empujar los ceros al final de la lista? Me pregunto si puedo usar algo comollamador de métodos.

Respuestas a la pregunta(8)

Su respuesta a la pregunta