Beim Bearbeiten von Wörterbüchern kann es erforderlich sein, einen Schlüssel umzubenennen, ohne seinen Wert einem neuen Namen zuzuweisen oder ihn zu durchlaufen Wörterbuch. Dies kann je nach Art des verwendeten Wörterbuchs mit unterschiedlichen Methoden erreicht werden.
Für ein normales Python-Wörterbuch kann das folgende Codefragment verwendet werden:
<code class="python">mydict[k_new] = mydict.pop(k_old)</code>
Dadurch wird das entsprechende Element verschoben auf den umzubenennenden Schlüssel am Ende des Wörterbuchs, es sei denn, k_new ist bereits im Wörterbuch vorhanden. In diesem Fall wird der vorhandene Wert mit dem Wert aus dem umbenannten Schlüssel überschrieben.
Für ein Python 3.7 OrderedDict, bei dem die Damit die Reihenfolge der Schlüssel erhalten bleibt, muss eine neue Instanz des Wörterbuchs erstellt werden. Um beispielsweise Schlüssel 2 in „zwei“ umzubenennen:
<code class="python">d = {0:0, 1:1, 2:2, 3:3} new_d = { "two" if k == 2 else k: v for k, v in d.items() }</code>
Der gleiche Ansatz kann auf OrderedDicts angewendet werden, indem ein Generatorausdruck verwendet wird:
<code class="python">new_od = OrderedDict( (k_new if k == k_old else k, v) for k, v in od.items() )</code>
Es ist erwähnenswert, dass das Ändern von Der Schlüssel selbst ist, wie die Frage nahelegt, normalerweise nicht möglich, da Schlüssel in Wörterbüchern normalerweise hashbar und unveränderlich sind.
Das obige ist der detaillierte Inhalt vonWie benenne ich einen Wörterbuchschlüssel in Python ohne Neuzuweisung oder Iteration um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!