Die Schlüssel in einem Wörterbuch sind unveränderlich nicht ändert. Sie können sie nicht variabel machen. Bedenken Sie:
>>> a = 42
>>> di = {a:'forty-two'}
>>> di
{42: 'forty-two'}
Das Wörterbuch selbst hat einfach 42
als Schlüssel. Die Tatsache, dass Sie beim Einrichten des Wörterbuchs a
verwendet haben, ist ziemlich irrelevant. Ähnlich, da a
42 ist, wenn ich schreibe b = a + 1
dann b
wird 43
sein, und diese Tatsache wird nicht geändert, wenn ich später a
zu 10
ändern. In diesem Fall wird b
nicht magisch 11
werden.
Wenn Sie nicht möchten a
an eine neue Nummer binden, und dass die neue Nummer als Schlüssel verwenden, müssen Sie manuell das Wörterbuch ändern:
>>> old_a = a #store old value of a
>>> a = 10 #assign new value to a
>>> di[a] = di[old_a] #assign value to new key
>>> del(di[old_a]) #delete old key-value pair
>>> di
{10: 'forty-two'}
Dies ist etwas gewunden, was darauf schließen läßt, dass es isn Es ist sehr pythonisch und es gibt wahrscheinlich einen besseren Weg, um das zu tun, was du versuchst zu tun.
auf Bearbeiten Der Prozess Taste tauschen kann mit .pop()
, wie @ ŁukaszRogalski rationalisiert werden, Punkten oben in einem Kommentar aus:
old_a = a
a = 10
di[a] = d.pop(old_a)
diese Weise der alten Schlüssel in dem Prozess der löscht automatisch zuweisen sein Wert für den neuen Schlüssel.
Haben Sie es versucht, um zu sehen, was passiert? –
Meinst du 'a' statt' x'? – Carcigenicate
Ich verstehe nicht, was Sie meinen mit "* übergeben Sie es an ein Wörterbuch *"? Wie kommst du daran vorbei? –