Python: Sortieren Sie eine Reihe von Wörterbüchern mit benutzerdefinierten Komparator?

Ich habe das folgende Python-Array von Wörterbüchern:

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

Ich möchte es nach den Rangwerten sortieren und wie folgt sortieren: 1-2-3-4-0-0-0.

Wenn ich es versuche:

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

dann wird die Liste in der Reihenfolge 0-0-0-1-2-3-4 sortiert.

Wie kann ich eine benutzerdefinierte Komparatorfunktion definieren, um Nullen an das Ende der Liste zu verschieben? Ich frage mich, ob ich so etwas gebrauchen kannMethodenanrufer.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage