Python - anordnen von Wörtern in alphabetischer Reihenfolge
Muss das Programm drucken Sie die Namen alphabetisch die Letzte aus 8 Elementen.
Die Namen/Wörter eingegeben werden können, die in irgendeiner Weise durch den code.
Ich denke, ich sollte mit Listen und in range()
hier. Ich hatte eine Idee von dem man die erste/zweite/Dritte/... Brief von der input-Namen mit Buchstaben des vorherigen, und dann setzen Sie an das Ende der Liste bzw. vor der vorhergehende (je nach Vergleich), und dann zu wiederholen, dass für den nächsten Namen. Am Ende würde das Programm drucken Sie das Letzte Element der Liste.
- Ist dies eine übung, die Sie tun, eine bestimmte Art, oder können Sie nur verwenden
sort
odermax
wie empfohlen in den bereits gegebenen Antworten? - Ich will nicht zu schreiben, eine vollständige Antwort jetzt, aber Sie sollten im Hinterkopf behalten, dass die Antworten empfehlen
max
undsort
nicht unbedingt behandeln Großschreibung korrekt, da diese Art von der numerische Wert eines Zeichens (soA
<B
, abera
>B
). - Für, dass Sie können verwenden Sie immer die oberen oder unteren
- Hier ist ein Beispiel, wie man richtig sortiert alphabetisch mit einem bestimmten Gebietsschema-Einstellungen: stackoverflow.com/a/36156/212555
InformationsquelleAutor CrashZer0 | 2012-12-10
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python string-Vergleiche sind lexikalische standardmäßig, so dass Sie sollten in der Lage sein zu rufen
max
und Weg mit ihm:Natürlich, wenn Sie wollen, um dies manuell zu tun:
Oder Sie können Sortieren Sie Ihre Satz:
Oder Sortieren es Umgekehrt:
Aber wenn Sie möchten, um vollständig manuellen (das ist so schmerzhaft):
Wenn Sie wollen, dass dies Agnostiker die groß-und Kleinschreibung, sicher sein, rufen Sie
str.lower()
auf Ihreword
s erste:Verwenden Sie die
sort()
Methode.Ausgang,
In Fall, dass Sie die Letzte, die Sie verwenden können, die
max()
Methode.Wie bereits in einer vorherigen Antwort, string-Vergleiche sind lexikalische standardmäßig so
min()
undmax()
verwendet werden kann. Behandlung von groß - und kleingeschriebenen Wörtern, kann man angebenkey=str.lower
. Zum Beispiel:locale.collate
wenn Sie möchten, um zu behandeln, gemischte Wörter mit nicht-ASCII-Buchstaben.Wenn Euch eine Mischung der Wörter mit Großbuchstaben und Kleinbuchstaben, Wörter, die Sie dies tun könnte:
Ergebnis:
string.capwords(s)
statt nurs.lower()
oders.upper()
?s.lower()
unds.upper()
ist, dass Sie nicht brauchen, importieren Sie jedes Modul (string
), kennst du irgendwelche anderen Vorteile?s.lower()
ist die paradigmatische Art und Weise zu tun, der groß-und Kleinschreibung (ASCII) Vergleiche; eine Funktion verwenden, die ist so wenig bekannt, dass Sie wählte nicht, fügen Sie es alsstr
Methode bedeutet, dass die Menschen denken über den code, der anstatt sofort zu erkennen, was es tut (und automatisierte refactoring-tools nicht erkennen, es überhaupt). Sie habe gehört, "TOOWTDI", richtig? Es gibt auch kleinere Vorteilelower
ist auch eher optimiert auf verschiedene Python-Implementierungen, es ist leichter zu Lesen (ein Wort, das Ihnen sagt, was Sie tut, anstelle von zwei, von denen irrelevant ist), etc.Dies wäre, wie ich es tun würde.
Definieren Sie die Zeichenfolge: Für Argumente Willen, lassen Sie uns sagen, dass der string bereits vordefiniert.
Verwenden Sie die
split()
Methode: Diesplit()
Methode gibt eine Liste der "Wörter" aus dersentence
string. Ich benutze den Begriff "Wort" hier Locker als die Methode hat keine Vorstellung von "Wort", es trennt lediglich diesentence
string in eine Liste von Analyse es für Zeichen, getrennt durch Leerzeichen und-Ausgänge diese Zeichen als diskrete Elemente in einer Liste. Diese Liste ist noch nicht alphabetisch geordnet.Verwenden Sie die
sorted
Funktion: Die sorted-Funktion liefert eine alphabetisch sortierte version dersplit_sentence
Liste.Drucken Sie das Letzte element in der Liste:
In python die Methode sort() sortiert alle Zeichenketten alphabetisch, so dass Sie können verwenden Sie diese Funktion aus.
Können Sie eine Liste der alle Ihre Worte und dann :
Folge wäre eine alphabetisch sortierte Liste.
Verwenden Sie einfach die folgende: