在 Python 中更改字典中的鍵
Najwa Riyaz
2023年10月10日
- 在 Python 中的字典中分配新鍵和刪除舊鍵
-
在 Python 中使用
pop()
函式 -
在 Python 中使用
for
迴圈遍歷字典並更改字典中的鍵 - 用 Python 重建一個全新的例項
-
在 Python 中使用
OrderedDict
類 -
在 Python 中使用
Pandas.DataFrame
函式
本文介紹了在 Python 中更改字典中的鍵的各種方法。
在 Python 中的字典中分配新鍵和刪除舊鍵
要在 Python 中更改字典中的鍵,請按照以下步驟操作。
- 為舊鍵分配一個新鍵。
- 刪除舊鍵。
參考下面的示例,它演示了這些步驟。
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'}