Python-Liste Sortieren
Ich bin derzeit python und ganz neu in dieser Sprache.
Sortieren Liste Basiert auf Zwei CriteriaGiven eine Liste von Wörtern, gibt eine Liste mit den gleichen Worten in der Reihenfolge der Länge (längste bis kürzeste), das zweite Sortierkriterium sollte alphabetisch. Hinweis: Sie müssen denken, dass zwei Funktionen.
Kann mir jemand helfen mit diesem?
- Ist dieses Hausaufgaben? Wenn nicht, wo ist es? Was haben Sie versucht? Sollten Sie mehr details oder Menschen, die nicht sehr bereit, zu helfen, vor allem, wenn wir denken, dass Sie offensichtlich versuchen, uns zu tun, Ihre Aufträge für Sie.
- Hausaufgaben problem??
- stackoverflow.com/questions/4659524/... - andere haben versucht, mehr...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benötigen Sie nur einen Anruf zu
sort
, da Python automatisch sortiert die Tupel lexikographisch. Das ist, wenn Sie Fragen, Python zu vergleichen, zwei Tupeln wird, um Ihnen von Ihren ersten element, außer wenn diese zu vergleichen, gleich in welchem Fall es wird, um Sie von Ihrem zweiten element, außer wenn diese vergleichen Sie gleich in die Falle...Sie Sortieren möchten, in der Liste der Elemente von minus Ihrer Länge und dann alphabetisch geordnet, so dass Sie wollen, der Schlüssel ein string
s
werden die Tupel(-len(s), s)
. Daher:Design
Das Schlüsselwort hier ist "stabilen Sortier-Algorithmus". Denken Sie an zwei stabil Sortier-Funktionen:
In welcher Reihenfolge würdest du Sie kombinieren, um die gewünschte Reihenfolge?
Umsetzung
Wie andere erwähnt haben, die ersten Sortier-Funktion können benannt werden:
Dem zweiten Sortier-Funktion können benannt werden:
Dies sollte genug sein, um zu schreiben, eine komplette Lösung.
Ergebnis
Wenn Sie kombinieren die Funktion in der richtigen Weise, sollten Sie sich die folgenden:
In Python, Liste der sort-Methode hat eine Taste, die verwendet werden können, um Kriterien für die Sortierung.
Für das problem, das Sie beschreiben, würde ich die Taste so gut wie die normale Sortierung wie folgt.
l.sort(key=len, reverse=True)
wäre besser alsl.sort(...); l.reverse()
Hinweise:
ich glaube, das funktioniert...ich bin, neue zu python