Unerwartete Datenzuweisung in verschachtelten Python-Wörterbüchern

Ich bin neu in Python, bitte entschuldigen Sie dumme Fehler, aber nach Recherchen kann ich das nicht herausfinden. Ich erstelle ein Wörterbuch aus einer Liste von Tagen im Monat aus dem Kalender. Ich hatte ursprünglich @ verwenddict.fromkeys() aber gefundenDie Submission, die mich überzeugt hat, zu der Erklärung über das Wörterbuchverständnis überzugehen, die ich habe. Dann gebe ich jedem Wert im Wörterbuch ein anderes Wörterbuch mit dem Wochentag als Schlüssel und einem anderen Wörterbuch als Wert. Dieses Wörterbuch ist taskDic, das Aufgaben als Schlüssel hat und die Namen von Personen als Werte enthält.

Mein Problem ist, dass meine letzte Anweisung in meinen Schleifen der gleichen Person zuweist, dass sie jeden Tag Müll (usw.) tut, obwohl sich die Schleife nur am ersten Tag befindet. Ich glaube, es stimmt etwas nicht, wie ich das Wörterbuch starte, weil es allen Dics Werte zuweist, als ob sie gleich wären.

rundsätzlich habe ich das gleiche Problem wie das oben genannte Problem, jedoch mit verschachtelten Wörterbüchern. Bitte lassen Sie mich wissen, wenn ich etwas klären muss. Vielen Dank

import calendar

week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
taskDic = {'Trash':[], 'Groceries':[], 'Clean':[]} 
teamList = ['Jane', 'Peter', 'Jake', 'Eliza', 'Sarah', 'Bill']
person = 0

cal = list(calendar.Calendar().itermonthdays(2015, 8))
cal = {k: {} for k in cal}

for i in cal:
    cal[i] = {week[i % 7]: taskDic}

for i in cal:  
     if (cal[i].keys() != 'Saturday') and (cal[i].keys() != 'Sunday'):
         for j in cal[i]:   
              for k in cal[i][j]:  
                cal[i][j][k] = teamList[person % len(teamList)]
                person += 1

Mein Ergebnis sieht so aus:

0 {'Monday': {'Trash': 'Eliza', 'Groceries': 'Sarah', 'Clean': 'Bill'}}
1 {'Tuesday': {'Trash': 'Eliza', 'Groceries': 'Sarah', 'Clean': 'Bill'}}
2 {'Wednesday': {'Trash': 'Eliza', 'Groceries': 'Sarah', 'Clean': 'Bill'}}
3 {'Thursday': {'Trash': 'Eliza', 'Groceries': 'Sarah', 'Clean': 'Bill'}}
etc...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage