Ich versuche eine Funktion zu erstellen, die eine Monatsnummer in einen abgekürzten Monatsnamen oder einen abgekürzten Monatsnamen in eine Monatsnummer konvertieren kann. Ich dachte, dies könnte eine häufige Frage sein, konnte sie aber online nicht finden.
Ich habe über das Kalendermodul nachgedacht . Ich sehe, dass Sie einfach von der Monatsnummer in den abgekürzten Monatsnamen konvertieren können calendar.month_abbr[num]
. Ich sehe jedoch keinen Weg in die andere Richtung. Wäre das Erstellen eines Wörterbuchs zum Konvertieren der anderen Richtung der beste Weg, um damit umzugehen? Oder gibt es einen besseren Weg, um vom Monatsnamen zur Monatsnummer und umgekehrt zu gelangen?
<calendar._localized_month instance at 0x0164C9E0>
. Die ursprüngliche Version von Davids Code erzeugte Syntaxfehler in 2.6 und 3.1 - beide benötigen()
ungefähr v, k und beide müssen für calendar.month_abbr auflisten, was ich behoben habe.calendar.month_abbr
es sich um ein Array anstelle eines Wörterbuchs handelt.Nur zum Spaß:
quelle
Verwenden des Kalendermoduls :
Number-to-Abbr
calendar.month_abbr[month_number]
Abkürzung zur Nummer
list(calendar.month_abbr).index(month_abbr)
quelle
Hier ist noch eine andere Möglichkeit, dies zu tun.
quelle
month_cal = dict((v,k) for v,k in zip(calendar.month_abbr[1:], range(1, 13)))
und dannmonth_cal[shortMonth]
Informationsquelle: Python Docs
Um die Monatsnummer vom Monatsnamen zu erhalten, verwenden Sie das Datum / Uhrzeit-Modul
quelle
Hier ist eine umfassendere Methode, die auch vollständige Monatsnamen akzeptieren kann
Beispiel:
quelle
Einer noch:
quelle
Um den Monatsnamen anhand der Monatsnummer zu erhalten, können Sie Folgendes verwenden
time
:Und um die Monatsnummer mit dem Monatsnamen zu erhalten:
quelle
Aufbauend auf den oben genannten Ideen ist dies effektiv, um einen Monatsnamen in die entsprechende Monatsnummer zu ändern:
quelle
quelle
Sie können unten als Alternative verwenden.
from time import strptime
strptime('Feb','%b').tm_mon
import calendar
calendar.month_abbr[2]
odercalendar.month[2]
quelle