Ich habe ein geordnetes Wörterbuch der Tage der Woche:Benötigen Sie Verständnis Verhalten von Ordereddict helfen
weekdays = collections.OrderedDict([ ('Mon', 0), ('Tue', 0), ('Wed', 0), ('Thu', 0), ('Fri', 0), ('Sat', 0), ('Sun', 0) ])
ich die n-te Schlüssel des Wert auf 1 zu ändern, so dass, wenn ich n auf 4 gesetzt, der vierte Schlüssel 'do' so Wochentag wird:
OrderedDict([('Mon', 0), ('Tue', 0), ('Wed', 0), ('Thu', 1), ('Fri', 0), ('Sat', 0), ('Sun', 0)])
ich kann tun, dass mit dem folgenden Code:
startday_2017 = 4
weekdays = collections.OrderedDict([ ('Mon', 0), ('Tue', 0), ('Wed', 0), ('Thu', 0), ('Fri', 0), ('Sat', 0), ('Sun', 0) ])
date = list(weekdays.keys())[(startday_2017-1)]
for key in weekdays.keys():
if key == date:
weekdays[key] = 1
das scheint zu funktionieren, aber wenn ich w Um die Werte zu ändern, die den Schlüsseln vor oder nach der n-ten Taste entsprechen, beginnt das Ordereddict, komisch zu wirken. Mit diesem Code:
startday_2017 = 4
weekdays = collections.OrderedDict([ ('Mon', 0), ('Tue', 0), ('Wed', 0), ('Thu', 0), ('Fri', 0), ('Sat', 0), ('Sun', 0) ])
date = list(weekdays.keys())[(startday_2017-1)]
for key in weekdays.keys():
if key < date:
weekdays[key] = "applesauce"
elif key == date:
weekdays[key] = 1
else:
weekdays[key] = 2
print(weekdays)
ich diese Ausgabe:
OrderedDict([('Mon', 'applesauce'), ('Tue', 2), ('Wed', 2), ('Thu', 1), ('Fri', 'applesauce'), ('Sat', 'applesauce'), ('Sun', 'applesauce')])
Wie erreiche ich das Ergebnis, das ich nach bin?