週のクラスで、月曜日から土曜日の文字列キーを含む.fromkey()メソッドを使用して辞書を作成し、それらをすべて空のリストに初期化しました。
self.weekDict = dict.fromkeys(dayNameList, [])
次に、従業員のリストを反復処理し、各反復内で、就業日を反復処理して、各日の対応するweekDictリストに従業員を追加する関数があります。
def setWeekDict(employees):
for employee in employees:
for day in employees[employee].workDays:
self.weekDict[day].append(employee)
print "employee: " + employee
print "weekday/list: " + str(day) + str(self.weekDict[day])
weekDictリストには、特定の日に作業するようにスケジュールされているすべての人が反映されると思います。代わりに、毎日のリストには、従業員のために1日に繰り返した合計回数が累積されているように見えます。私のprintステートメントはこれを出力します:
employee: Addison
weekday/list: Saturday['Addison']
employee: Addison
weekday/list: Monday['Addison', 'Addison']
employee: Addison
weekday/list: Tuesday['Addison', 'Addison', 'Addison']
employee: Addison
weekday/list: Wednesday['Addison', 'Addison', 'Addison', 'Addison']
employee: Addison
weekday/list: Thursday['Addison', 'Addison', 'Addison', 'Addison', 'Addison']
明らかに、「Addison」または他の従業員を1日1回だけ表示したいのですが、forループで、従業員名+従業員名が追加された回数を追加する各リストに何が貢献するのか理解できません。以前の他のリスト。dict.fromkeys()が実際にはすべて同じリストを指すキーを作成するとしか思えませんが、それがfromkeys()関数の仕組みだとは思いませんでした。