Wie man alle Werte in einem Wörterbuch zurücksetzt

{"green": 0, "y3": 1, "m@tt": 0, "newaccount": 0, "egg": 0, "results": 0, "dan": 0, "Lewis": 0, "NewAccount2": 0, "testyear3": 1, "testyear6": 0, "NewAccount1": 0, "testyear4": 0, "testyear5": 0, "Matt1": 0, "swag": 1, "lewis": 1, "matt": 1, "notin": 0} 

Dies ist das Wörterbuch, das als 'finaldict' definiert ist. Was ich tun möchte, ist, ALLE Werte zu ändern, egal was sie auf 0 genannt werden. Denken Sie jedoch daran, dass neue Kontonamen an jedem beliebigen Punkt als "Schlüssel" hinzugefügt werden, damit ich nicht manuell tun kann "completedict [green] = 0 "," Fertiggestellt [lewis] = 0 ", etc etc.

Gibt es irgendeinen Weg, um Python ändern ALLE Werte innerhalb eines Wörterbuches zurück zu 0?

EDIT: Leider will ich kein neues Wörterbuch erstellen – ich möchte es als 'finaldict' bezeichnen, da das Programm das Wörterbuch, das als 'completedict' definiert ist, an vielen Punkten des Programms verwenden muss.

  • Zugriff auf Daten von Bokeh-Widgets in einem Jupyter Notebook
  • Weisen Sie 0 zu bestimmten Wörtern zu, wenn die Wörter nicht vorhanden sind
  • Konvertiere base64 zu Bild in Python
  • Numpy.polyfit hat kein Schlagwort 'cov'
  • Plot Ellipse mit matplotlib.pyplot (Python)
  • Wie bekomme ich die URL der aktiven Google Chrome-Registerkarte unter Windows?
  • 5 Solutions collect form web for “Wie man alle Werte in einem Wörterbuch zurücksetzt”

    Eine weitere Möglichkeit ist die Verwendung von .fromkeys() :

    Fromkeys (seq [, value])

    Erstellen Sie ein neues Wörterbuch mit Schlüssel aus seq und Werte auf Wert gesetzt.

     d = d.fromkeys(d, 0) 

    Demo:

     >>> d = {"green": 0, "y3": 1, "m@tt": 0, "newaccount": 0, "egg": 0, "results": 0, "dan": 0, "Lewis": 0, "NewAccount2": 0, "testyear3": 1, "testyear6": 0, "NewAccount1": 0, "testyear4": 0, "testyear5": 0, "Matt1": 0, "swag": 1, "lewis": 1, "matt": 1, "notin": 0} >>> d.fromkeys(d, 0) {'newaccount': 0, 'swag': 0, 'notin': 0, 'NewAccount1': 0, 'Matt1': 0, 'testyear4': 0, 'Lewis': 0, 'dan': 0, 'matt': 0, 'results': 0, 'm@tt': 0, 'green': 0, 'testyear5': 0, 'lewis': 0, 'NewAccount2': 0, 'y3': 0, 'testyear3': 0, 'egg': 0, 'testyear6': 0} 

    Sicher, es ist ziemlich einfach:

     newDict = {key: 0 for key in completeddict} 

    Das ist Wörterbuchverständnis und entspricht:

     newDict = {} for key in completeddict: newDict[key] = 0 

    Diese dict Verständnisse wurden in v2.7 eingeführt, so ältere Vesionen müssen die erweiterte Form verwenden.

    Ein Formular, das in praktisch jeder Python-Version arbeiten wird, ist nur der dict Konstruktor mit einem Listenverständnis oder Generator zu verwenden:

     >>> d={"green": 10, "y3": 11, "m@tt": 12, "newaccount": 22, "egg": 55, "results": 0, "dan": 0, "Lewis": 0, "NewAccount2": 0, "testyear3": 1, "testyear6": 0, "NewAccount1": 0, "testyear4": 0, "testyear5": 0, "Matt1": 0, "swag": 1, "lewis": 1, "matt": 1, "notin": 0} >>> d=dict((k, 0) for k in d) >>> d {'newaccount': 0, 'swag': 0, 'notin': 0, 'NewAccount1': 0, 'Matt1': 0, 'testyear4': 0, 'Lewis': 0, 'dan': 0, 'matt': 0, 'results': 0, 'm@tt': 0, 'green': 0, 'testyear5': 0, 'lewis': 0, 'NewAccount2': 0, 'y3': 0, 'testyear3': 0, 'egg': 0, 'testyear6': 0} 

    Was können Sie dann mit einem veränderlichen Argument oder irgendeine Form von kündbaren verwenden:

     >>> d=dict((k, list()) for k in d) 

    Jetzt ist jedes Element von d eine neue Liste (oder was auch immer veränderlich oder nicht Sie möchten, dass der Wert Teil des Tupels zu sein).

    Wenn du kein neues Dict erstellen willst, scheint es wie alles, was du brauchst, ist eine einfache Zwei-Zeilen-Schleife, es sei denn, ich vermisse etwas:

     for key in completeddict.keys(): completeddict[key] = 0 

    Hinzufügen zu alecxe asnwer,

    Dein Wörterbuch ist,

     completeddict = {"green": 0, "y3": 1, "m@tt": 0, "newaccount": 0, "egg": 0, "results": 0, "dan": 0, "Lewis": 0, "NewAccount2": 0, "testyear3": 1, "testyear6": 0, "NewAccount1": 0, "testyear4": 0, "testyear5": 0, "Matt1": 0, "swag": 1, "lewis": 1, "matt": 1, "notin": 0} 

    Jetzt kann dieses Wörterbuch mit Standardwerten aktualisiert werden,

     completeddict.update({}.fromkeys(completeddict,0) 

    Erledigt. Ihre Fertigstellung wird mit dem Standardwert für alle Schlüssel aktualisiert.

    Ex:

     a = {'x':2,'y':4} print id(a) print a a.update({}.fromkeys(a,0)) print id(a) print a 

    Ausgabe:

     42612608 <--- id of dict 'a' {'y': 4, 'x': 2} <--- dict 'a' before updation 42612608 <--- id of dict 'a' {'y': 0, 'x': 0} <--- dict 'a' after updation 

    Es kann beobachtet werden, dass id des Wörterbuches selben, auch wenn es mit Standardwerten aktualisiert wird.

    Python ist die beste Programmiersprache der Welt.