ホームページ  >  記事  >  バックエンド開発  >  再割り当てや反復を行わずに Python で辞書キーの名前を変更する方法は?

再割り当てや反復を行わずに Python で辞書キーの名前を変更する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 07:57:29951ブラウズ

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

再割り当てや反復を行わずに辞書キーの名前を変更する

辞書を操作するとき、値を新しい名前に再割り当てしたり、キーを反復したりせずに、キーの名前を変更する必要がある場合があります。辞書。これは、使用されている辞書の種類に応じて、さまざまな方法を使用して実現できます。

通常の Python 辞書の場合、次のコード スニペットを使用できます:

<code class="python">mydict[k_new] = mydict.pop(k_old)</code>

これにより、対応する項目が移動されます。 k_new がディクショナリにすでに存在しない限り、名前を変更するキーをディクショナリの末尾に追加します。その場合、名前変更されたキーの値で既存の値が上書きされます。

Python 3.7 OrderedDict の場合、キーの順序を保持する必要がある場合は、辞書の新しいインスタンスを作成する必要があります。たとえば、キー 2 の名前を 'two' に変更するには:

<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>

ジェネレーター式を使用して、同じアプローチを OrderedDicts に適用できます。

<code class="python">new_od = OrderedDict(
    (k_new if k == k_old else k, v) for k, v in od.items()
)</code>

質問が示唆しているように、辞書内のキーは通常ハッシュ可能で不変であるため、キー自体は通常は実現不可能です。

以上が再割り当てや反復を行わずに Python で辞書キーの名前を変更する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。