0
の振る舞いを理解する助けが必要です:は、私は曜日の順序付き辞書を持っているOrdereddict
weekdays = collections.OrderedDict([ ('Mon', 0), ('Tue', 0), ('Wed', 0), ('Thu', 0), ('Fri', 0), ('Sat', 0), ('Sun', 0) ])
私は4 nに設定した場合ので、4番目のキーは、1番目のキーの値を変更したいです私は次のコードでそれを行うことができ
OrderedDict([('Mon', 0), ('Tue', 0), ('Wed', 0), ('Thu', 1), ('Fri', 0), ('Sat', 0), ('Sun', 0)])
:「木」は平日ようになり
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
動作しているようですが、私ワット場合n番目のキーの前後のキーに対応する値を変更する場合、ordereddictは面白い動作を開始します。このコードでは:
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)
私はこの出力を得る:
OrderedDict([('Mon', 'applesauce'), ('Tue', 2), ('Wed', 2), ('Thu', 1), ('Fri', 'applesauce'), ('Sat', 'applesauce'), ('Sun', 'applesauce')])
は、どのように私は私が後だ結果を達成していますか?