在 Python 中更改字典中的鍵

Najwa Riyaz 2023年10月10日
  1. 在 Python 中的字典中分配新鍵和刪除舊鍵
  2. 在 Python 中使用 pop() 函式
  3. 在 Python 中使用 for 迴圈遍歷字典並更改字典中的鍵
  4. 用 Python 重建一個全新的例項
  5. 在 Python 中使用 OrderedDict
  6. 在 Python 中使用 Pandas.DataFrame 函式
在 Python 中更改字典中的鍵

本文介紹了在 Python 中更改字典中的鍵的各種方法。

在 Python 中的字典中分配新鍵和刪除舊鍵

要在 Python 中更改字典中的鍵,請按照以下步驟操作。

  1. 為舊鍵分配一個新鍵。
  2. 刪除舊鍵。

參考下面的示例,它演示了這些步驟。

dict_ex[new_key] = dict_ex[old_key]
del dict_ex[old_key]

以下程式碼說明了此方法。

dict_ex = {1: "January", 2: "Febuary", 3: "March"}
print("Old dictionary-", dict_ex)
dict_ex[2.1] = dict_ex[2]
del dict_ex[2]
print("New dictionary-", dict_ex)

在這裡,我們看到鍵的值 2 被值 2.1 替換。請注意更新的鍵值對如何移動到字典的末尾。

輸出:

Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.1: 'Febuary'}

在 Python 中使用 pop() 函式

要在 Python 中更改字典中的鍵,請參考以下步驟。

  • 使用 pop 功能彈出舊鍵。按照這個例子。
    pop(old_key)
    
  • 為彈出的舊鍵分配一個新鍵。按照這個例子。
    dict_ex[new_key] = dict_ex.pop(old_key)
    

下面的例子說明了這一點。

dict_ex = {1: "January", 2: "Febuary", 3: "March"}
print("Old dictionary-", dict_ex)
dict_ex[2.2] = dict_ex.pop(2)
print("New dictionary-", dict_ex)

輸出:

Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.2: 'Febuary'}

在這裡,我們看到鍵的值 2 被值 2.2 替換。請注意更新的鍵值對如何移動到字典的末尾。

在 Python 中使用 for 迴圈遍歷字典並更改字典中的鍵

為此,你首先獲取目標字典和另一個包含新鍵值的字典。之後,你最終會使用 for 迴圈相應地切換所有鍵。

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print("Old dictionary-", dict_ex)
new_key_assign = {1: 111, 2: 2, 3: 3}
print("New dictionary-")
print(dict([(new_key_assign.get(key), value) for key, value in dict_ex.items()]))

在這裡,我們看到鍵的值 1 被值 111 替換。請注意這次更新的鍵值對是如何保留的。

輸出:

Old dictionary- {1: 'Jan', 2: 'Feb', 3: 'Mar'}
New dictionary-
{111: 'Jan', 2: 'Feb', 3: 'Mar'}

用 Python 重建一個全新的例項

在 Python 3.7+ 字典中,你可以保留順序。為此,按如下方式重建字典的一個全新例項。

dict_ex = {"old_key": "Jan", 2: "Feb", 3: "Mar"}

{"new_key" if k == "old_key" else k: v for k, v in dict_ex.items()}

這裡有一個例子來證明這一點。

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}

print({"one" if k == 1 else k: v for k, v in dict_ex.items()})

在這裡,我們看到鍵的值 1 被值 one 替換。請注意這次更新的鍵值對是如何保留的。

輸出:

{'one': 'Jan', 2: 'Feb', 3: 'Mar'}

在 Python 中使用 OrderedDict

在 Python 3.7+ 字典中,你可以通過使用 OrderedDict 和生成器表示式來保留排序。

請注意,你首先需要從 collections 匯入 OrderedDict。然後,使用 OrderedDict 類。

from collections import OrderedDict

dict_ex = {"old_key": "Jan", 2: "Feb", 3: "Mar"}
OrderedDict(("new_key" if k == 1 else k, v) for k, v in dict_ex.items())

這裡有一個例子,你可以參考。

from collections import OrderedDict

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
OrderedDict(("one" if k == 1 else k, v) for k, v in dict_ex.items())

在這裡,我們看到鍵的值 1 被值 one 替換。請注意這次更新的鍵值對是如何保留的。

輸出:

OrderedDict([('one', 'Jan'), (2, 'Feb'), (3, 'Mar')])

在 Python 中使用 Pandas.DataFrame 函式

你可以使用 Pandas 在 Python 中更改字典中的鍵。首先,匯入 pandas 庫。

然後,使用 DataFrame,如下所示。

import pandas as pd

old_dictionary = {"old_value": "Jan", 2: "Feb", 3: "Mar"}
new_dictionary = {"new_value": "Jan", 2: "Feb", 3: "Mar"}
df = pd.DataFrame([old_dictionary, new_dictionary])

檢查這個示例程式。

import pandas as pd

dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print(dict_ex)
new_dict_ex = {11: "Jan", 2: "Feb", 3: "Mar"}
df = pd.DataFrame([dict_ex, new_dict_ex])
print(new_dict_ex)

在這裡,我們看到鍵的值 1 被值 11 替換。請注意這次更新的鍵值對是如何保留的。

輸出:

{1: 'Jan', 2: 'Feb', 3: 'Mar'}
{11: 'Jan', 2: 'Feb', 3: 'Mar'}

相關文章 - Python Dictionary