Wie benenne ich einen Wörterbuchschlüssel in Python ohne Neuzuweisung oder Iteration um?

Mary-Kate Olsen
Freigeben: 2024-11-03 07:57:29
Original
946 Leute haben es durchsucht

How to Rename a Dictionary Key in Python Without Reassignment or Iteration?

Umbenennen eines Wörterbuchschlüssels ohne Neuzuweisung oder Iteration

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage