Das Paket python inflect
enthält eine Methode zum Konvertieren von Zahlen in Ordinalzahlen:
wird angezeigt:
%Vor%Wie hoch planen Sie zu gehen? (Erwartest du jemals höher als, sagen wir, "zwanzigsten"?)
Vielleicht brauchen Sie nur ein dict
,
kann den Beitrag von ryvantage wegen Punkten nicht kommentieren, aber ich habe den gleichen Code für python geschrieben:
%Vor%Die zweite ist eher eine direkte Übersetzung, aber ich fand, dass die erste Variation wesentlich schneller ist:
Fr 28. August 11:48:13 Ergebnisse 2015
%Vor%Abhängig von Ihrer Situation können Sie die Ganzzahl beibehalten und "st", "nd", "rd" und "th" hinzufügen. Wenn ja, ist hier ein einfacher Algorithmus:
HINWEIS: Dieser Algorithmus ist in Java geschrieben. Ich kenne Python nicht. Jeder, der es in Python neu schreiben möchte, sei mein Gast.
%Vor%Also
%Vor%zeigt
an %Vor% Ähnlich wie die Ader @ Hugh Bothwell folgte , nur kein dict
verwendend (da deine Schlüssel bereits nett und numerisch sind), habe ich folgendes " one liner "zusammengestellt: :
Das deckt alle Fälle bis zu 12 ab. Wenn Sie höhere (in die Hunderte usw.) benötigen, dann werden Sie wahrscheinlich etwas robusteres benötigen (mit Rekursion, die ich mir vorstellen kann, usw.).
Mein Code hierfür verwendet die Liste, den ganzzahligen Modulus, um die erste Ziffer und die ganzzahlige Stockwerkteilung zu finden, um nach der Aus-Regel 11 bis 13 zu suchen.
%Vor%Die letzte Zeile ist besser lesbar:
%Vor%Grundsätzlich überprüfe ich die zweite Ziffer auf 1 *, was auf einen möglichen 11., 12., 13. Regelunterbrecher hinweist. Für die Regelhalter wird die Liste durch den Rest einer Division durch 10 (Modulooperator) referenziert.
Ich habe keine Tests auf Code-Effizienz durchgeführt, und die Überprüfung gegen die Länge ist viel besser lesbar, aber das funktioniert.
* (str (number) [- 2] erzeugt einen IndexError, wenn die Eingabe eine einzelne Ziffer ist. Die Verwendung von floor division für Ganzzahlen ergibt immer mindestens eine Ziffer, so dass die Zeichenkette immer einen Index von -1 hat)
Tags und Links python