J'ai un dictionnaire ordonné de jours de la semaine: si je mets n à 4Besoin d'aide pour comprendre le comportement des Ordereddict
weekdays = collections.OrderedDict([ ('Mon', 0), ('Tue', 0), ('Wed', 0), ('Thu', 0), ('Fri', 0), ('Sat', 0), ('Sun', 0) ])
Je souhaite modifier la nième valeur de clé 1, la clé 4 est 'Jeu' si la semaine devient:
OrderedDict([('Mon', 0), ('Tue', 0), ('Wed', 0), ('Thu', 1), ('Fri', 0), ('Sat', 0), ('Sun', 0)])
je peux le faire avec le code suivant:
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
cela semble fonctionner, mais si je w ant pour changer les valeurs correspondant aux touches avant ou après la nième touche, l'ordereddict commence à agir de manière amusante. Avec ce 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)
Je reçois cette sortie:
OrderedDict([('Mon', 'applesauce'), ('Tue', 2), ('Wed', 2), ('Thu', 1), ('Fri', 'applesauce'), ('Sat', 'applesauce'), ('Sun', 'applesauce')])
Comment puis-je obtenir le résultat que je suis après?